11日目 途中経過。
写経してます。ソートおもしろい。ほかにも方法があるそうなので考えてみる。
#include <stdio.h> #define NUM 5 int main(void) { int test[NUM], tmp, i, j; /*i,jを異なる役割で使える。*/ printf("%d人の点数を入力してください。\n", NUM); for(i=0; i<NUM; i++){ scanf("%d", &test[i]); } for(i=0; i<NUM-1; i++){ for(j=i+1; j<NUM; j++){ /*配列の1番目の数をtest[i],2番目の数をtest[j]とする。*/ if(test[j] > test[i]){ tmp = test[j]; /*ここ、3つの「数」のお手玉。jとiの中身とりかえたいけど、同時に交換はできない。*/ test[j] = test[i]; /*初め空のtmpにjの中身移して、空になったtにiの中身入れる。*/ test[i] = tmp; /*するとiが空になるので、tmpに移しておいたjの中身を入れて完了。なるほどね。*/ } } } for(i=0; i<NUM; i++){ printf("%d番目の人の点数は%dです。\n", i+1, test[i]); } return 0; }