C言語-簡単なバブルソートで成績順位を出す
バブルソートの例題です。そんなに大したことはしていません。
コード
#include <stdio.h> #define num 5 int main(void) { int i,j; int seiseki[2][num];//出席番号と成績 int tmp; printf("5名の成績を入力してください\n"); for(i=0; i<num; i++){ printf("%d番目の人の成績: ",i+1); scanf("%d",&seiseki[0][i]); seiseki[1][i] = i+1; } j = num -1; while(j>0) { for(i=0;i<j;i++) { if(seiseki[0][i] > seiseki[0][i+1]) { // 隣の数値と比較して大きければ入れ替える tmp = seiseki[0][i]; seiseki[0][i] = seiseki[0][i+1]; seiseki[0][i+1] = tmp; tmp = seiseki[1][i]; seiseki[1][i] = seiseki[1][i+1]; seiseki[1][i+1] = tmp; } } j--; } printf("----成績発表----\n"); for(i=0;i<num;i++) { printf("出席番号「%d」の人の成績は%2dです\n" ,seiseki[1][i],seiseki[0][i]); } return 0; }
実行結果
./bubble-sort 5名の成績を入力してください 1番目の人の成績: 156 2番目の人の成績: 5117 3番目の人の成績: 214 4番目の人の成績: 2724 5番目の人の成績: 499 ----成績発表---- 出席番号「1」の人の成績は156です 出席番号「3」の人の成績は214です 出席番号「5」の人の成績は499です 出席番号「4」の人の成績は2724です 出席番号「2」の人の成績は5117です
単純ですね