0
入力した1つの数字に数字を並べ替えるコードを書く必要があります。例えば入力された数字の並べ替え - FORとWHILEの違い
:入力:4713239 出力:1233479
私は(33のような)は、繰り返しの数字を入力するとき、それは正常に動作しない私は、FORとして最後のループを持っている場合:
for(int j = 0; j < arr[i]; j++) // in this loop my output is: 123479.
私はこのループをFORからWHILEに正しく変更します。 それは意味:
while(arr[i]) // and the number is sorted correctly (1233479)
真は言われ、私はこのコードでは、これらの操作の違いがあるかわかりません。
FORループが正しく機能しないのはなぜですか?誰かが私にこのことを説明できますか?
私はコードを書いた:
int sort(int arg)
{
int var, score = 0;
int arr[10] = {0};
for(int i = 0; i < 10; i++)
{
var = arg % 10;
arr[var]++;
arg = arg/10;
}
for(int i = 0; i < 10; i++)
{
for(int j = 0; j < arr[i]; j++) //while(arr[i]) --> works correctly
{
score = score * 10 + i;
arr[i]--;
}
}
return score;
}
while(arg [i]!= 0) 'while(arg [i]!= 0)'と同等に評価され、したがってfor(...; j
BeyelerStudios
@BeyelerStudiosだから、その二重の数字がソートされない原因となるのはどこですか? – gryzek