My student number: s164099 Num Score 1001 68 1002 45 1003 28 1004 25 1005 89 1005 89 1001 68 1002 45 1003 28 1004 25 --------------------------------------- |
なお,結果の出力では必ず最初の行に自分の学生番号を,最後にハイフンによるラインをつけること.無い場合には減点するので注意.
受験番号と得点の両方を記憶するために,次のような配列を用意します.
int score[5][2];
得点の高い順に並べ直すのは実習の問題で行ったのと同じ方法ですが,要素が今回は2つセットになっていますので,得点の方で入れ替え判断を行い,受験番号と得点の両方とも入れ替える必要があります.
解答用紙を使用する際には,まず,科目名の不要な方を削除してください.また,学生番号と名前の記入も忘れないでください.さらに,解答用紙自体がC言語のプログラムとなっていますので, cc コマンドを実行して,コンパイルエラーの無いことを確認してから提出してください. 指定の解答用紙を使用していない,コンパイルエラーが出る,実行時に警告が出る,学生番号と名前が無い,というような答案は提出されても採点しません.注意してください. |
/* ************************************************** */ /* */ /* プログラミング入門 情報科学演習C7 */ /* レポート課題 */ /* 2017.01.11 */ /* */ /* ************************************************** */ /* */ /* 学生番号: */ /* */ /* 氏名: */ /* */ /* ************************************************** */ /* */ /* この行以降に解答のプログラムを書くこと */ #include <stdio.h> #include <stdlib.h> #include <time.h> main() { srand((unsigned) time(NULL)); int i, j, k, tmp, score[5][2]; printf("My student number: s164099\n\n"); printf("Num Score\n"); for(i=0; i<=4; i++){ score[i][0] = 1001 + i; score[i][1] = rand() % 101; for(j=0; j<=1; j++) printf("%4d ", score[i][j]); printf("\n"); } printf("\n"); for(i=0; i<=3; i++) for(j=i+1; j<=4; j++) if(score[i][1]<score[j][1]) for(k=0; k<=1; k++){ tmp = score[i][k]; score[i][k] = score[j][k]; score[j][k] = tmp; } for(i=0; i<=4; i++){ for(j=0; j<=1; j++) printf("%4d ", score[i][j]); printf("\n"); } printf("\n---------------------------------------\n"); return(0); } |