プログラミングにはとても慣れています。代入の場合、配列を昇順でソートできる関数を作成する必要があります。私は関数を書いたが、完全には機能しない。私はこのフォーラムですでにこのようなケースについて多くの質問を読んできましたが(しかし、バブルソートを検索しました)、私はまだ私の問題を解決できません。C言語での配列の値の並べ替え
私のコード:
void sortOnValue(float *values, int size)
{
int i, d;
float swap;
for (i = 0; i < (size - 1); i++)
{
for (d = 0; d < (size - 1 - i); d++);
{
if (values[d] > values[d+1])
{
swap = values[d];
values[d] = values[d+1];
values[d+1] = swap;
}
}
}
}
void main()
{
int i;
float x, y;
float val[10]; //1.5, 2.2, 7.3, 9.2, 7.4, 7.5, -8.0, 1.5, 12
val[0] = 1.5;
val[1] = 2.2;
val[2] = 7.3;
val[3] = 9.2;
val[4] = 7.4;
val[5] = 7.5;
val[6] = -8.0;
val[7] = 1.5;
val[8] = 12;
printValues(val, 10);
sortOnValue(val, 10);
printValues(val, 10);
}
私の出力:
Values: 1.500 -8.000 2.200 7.300 9.200 7.400 7.500 0.000 1.500 12.000
それが機能しない理由の任意のアイデア?ループが終了する前に終了するためかもしれないと思うが、わからない。 また、配列に値を割り当てる効率的な方法は、私が行ったものよりもありますか?
ありがとうございました!
ただし、配列のすべての要素を初期化しません。 –
'float val [10] = {1.5,2.2,7.3,9.2,7.4,7.5、-8.0,1.5,12}; 'を割り当てる。この方法では、不特定の値も0に設定されます。 – MayeulC
ありがとう!私はそれを試しました。値を分けてください。そのチップのおかげで –