配列のソート
#include <stdio.h>
int main(void)
{
int i, j, tmp, number[10];
for (i=0; i<10; ++i){
scanf("%d", &number[i]);
if(number[i]<0 || number[i]>100){
exit(0);
}
}
for (i=0; i<10; ++i) {
for (j=i+1; j<10; ++j) {
if (number[i] > number[j]) {
tmp = number[i];
number[i] = number[j];
number[j] = tmp;
}
}
}
printf("昇順ソートした数値\n");
for (i=0; i<10; ++i)
printf("%d\n", number[i]);
}
必要ないかもしれませんが、解説です。
まず、0~100以外の数字が入力されたら終了する記述です。
if文で、0より小さい||(または)100より大きいなら強制終了。
exit文で、強制終了します。
次に、並び替えです。ソートとも言います。
並び替える変数の回数分繰り返します。
このソースでは、得点が小さいものを配列の添字が小さい変数に代入することにします。
そこで、余分な変数を用意します。このソースでは、tmpです。
if文で、比較をして得点が大きかったものを変数tmpに代入します。
すると、変数number[i]が不要になるので、得点が小さいもを変数number[i]を代入します。
そして、大きい得点をnumber[j]に代入します。
ごちゃごちゃしていますが、是非図に起こしてみてください。
これにより、小さい得点が添字の小さい変数に代入されて
大きい得点は、変数tmpに代入されて他の得点と比較されて...
ということが繰り返されます。
最後に、printf文で出力されます。