我寫了這段代碼。如何合併兩個排序後的數組以在C++中形成另一個排序後的數組?
#include<iostream>
using namespace std;
int main()
{int n1,n2;
cin>>n1>>n2;
int arr1[n1],arr2[n2];
for (int i=0;i<n1;i++)
cin>>arr1[i];
for (int j=0;j<n2;j++)
cin>>arr2[j];
int arr3[n1+n2],c1=0,c2=0,c3=0;
while (c1<n2 & c2<n2)
{if (arr1[c1]<=arr2[c2])
{arr3[c3]=arr1[c1];
c1++;
c3++;
}
else { arr3[c3]=arr2[c2];
c2++;
c3++;
}
while (c1<n1)
{arr3[c3]=arr1[c1];
c1++;
c3++;
}
while (c2<n2)
{arr3[c3]=arr2[c2];
c2++;
c3++;
}
}
for (int g=0;g<n1+n2;g++)
cout<<arr3[g];
return 0;
}
但它沒有提供所需的輸出。 當我在Java中看到相同的代碼時,它被賦予相同的算法。 這段代碼有什麼問題?
什麼是輸出?你期望什麼產出呢? – Hexaholic
哦,我很抱歉。 – user260674
哦,我非常抱歉,我想在輸入{2,4,5}和{1,3}時獲得{1,2,3,4,5},但我獲得了{1,2,3,4}加一些垃圾值和沒有5. 其實我得到了打字錯誤。我寫了(c1
user260674