2つの整数配列があり、もう一方の配列に基づいて最初の配列をソートしようとしています。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 ")を追加して、2つの値が入れ替わったときをチェックし、あなたのケースで2回起こるかどうかを調べることができます。おそらく間違ったソースコードをコンパイルしている可能性があります – Scab