我有兩個整數數組,我想基於另一個數組對第一個數組進行排序。對基於另一個數組的數組進行排序C
例如。 a = {1,2,3,6,0,0,0};
和b = {1,2,2,0,0,0,0};
b中排序的值是對於每個整數在
真實值預期的結果,我排序後期待是:
a = {2,3,1,6,0,0,0};
b = {2,2,1,0,0,0,0};
這是我使用的代碼
int j,k,temp1,temp2;
for (j=0; j<N; j++){
for (k=j+1; k<N; k++){
if (b[j] < b[k]){
temp1 = b[j];
b[j] = b[k];
b[k] = temp1;
temp2 = a[j];
a[j] = a[k];
a[k] = temp2;
}
}
}
它給我輸出:a = {2,3,1,0,0,0,6};
和b = {2,2,1,0,0,0,0};
我不知道錯誤在哪裏,任何幫助和建議表示讚賞。
我不認爲我明白你想要存檔。 「b中排列的值是a中每個整數的實際值」是什麼意思? –
你的代碼很好,並給出了預期的輸出。例如,你可以在if條件內添加一個'puts(「swap」)'來檢查兩個值交換的時間,在你的情況下它會發生兩次。你可能已經編譯了錯誤的源代碼 – Scab