1
私は自分のプログラムに少し問題があり、何が間違っているのかを解決することはできません。基本的に、昇順にソートされた2つの配列があり、それらを1つにマージする必要があります。整理されたマージ問題
私は、出力があることを期待:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
しかし、それは次のようになります。私は、出力の最後の値が14でないことを、間違っ
1 2 3 4 5 6 7 8 9 10 11 12 13 0
何をしているのですか?私はこれに対する解決策は非常に簡単だと思いますが、私はそれを理解することはできません。ここで
はコードです:
#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;
}
したがって、ループを変更する必要があります。手伝ってくれてありがとう ;) – Ensz