Ich habe ein kleines Problem mit meinem Programm und ich kann nicht lösen, was los ist. Grundsätzlich gibt es zwei Arrays in aufsteigender Reihenfolge sortiert und ich muss sie zu einem zusammenführen.Bestellte Merge Probleme
erwarte ich, dass der Ausgang sein:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
Aber es ist:
1 2 3 4 5 6 7 8 9 10 11 12 13 0
Was mache ich falsch, dass der letzte Wert in der Ausgabe nicht 14? Ich denke, dass die Lösung dafür sehr einfach sein wird, aber ich kann es nicht herausfinden.
Hier ist der Code:
#include<iostream>
#include<cstdlib>
using namespace std;
int main(){
int arrA[]={1,3,5,7,9,11,13};
int arrB[]={2,4,6,8,10,12,14};
int arrC[sizeof(arrA)/sizeof(int)+sizeof(arrB)/sizeof(int)];
int sizeA=sizeof(arrA)/sizeof(int);
int sizeB=sizeof(arrB)/sizeof(int);
int sizeC=sizeof(arrC)/sizeof(int);
for (int i=0;i<sizeA;){
for (int j=0;j<sizeB;){
if (arrA[i]<=arrB[j]){
arrC[i+j]=arrA[i++];
}
else{
arrC[i+j]=arrB[j++];
}
}
}
for (int i=0; i<sizeC; i++){
cout << arrC[i] << " ";
}
return 0;
}
Also muss ich die Schleifen ändern. Danke für die Hilfe ;) – Ensz