65から90までの整数を乱数で3つ発生させて,それらに対応するアルファベット大文字を表示した後,文字をアルファベット順に並び替える操作を行なうプログラムを作成せよ.なお,表示においては先頭の行には学生番号を,最後にはハイフンによるラインを出力すること.
My student number: s124099 Random numbers: 75 88 68 Alphabets: K X D Sorted: D K X ---------------------- |
並べ替える考え方としては,表示させる処理に if を使うのでは無くて,変数の値自体を入れ換えることを考えましょう.すなわち,3つの文字を変数 s, t, u に格納するとした場合に
printf("Alphabets: %c %c %c\n", s, t, u); ここに並べ変えの処理 printf("Sorted: %c %c %c\n", s, t, u);
のように変数の値の数値を入れ換えて下さい.
/* ************************************************** */ /* */ /* 情報科学演習 C6 C7 */ /* レポート課題 */ /* 2012.11.05 */ /* */ /* ************************************************** */ /* */ /* 学生番号: */ /* */ /* 氏名: */ /* */ /* ************************************************** */ /* */ /* この行以降に解答のプログラムを書くこと */ #include <stdio.h> #include <stdlib.h> #include <time.h> main() { srand((unsigned) time(NULL)); int s, t, u, tmp; s = rand() % 26 + 65; t = rand() % 26 + 65; u = rand() % 26 + 65; printf("My student number: s124099\n\n"); printf("Random numbers: %d %d %d\n", s, t, u); printf("Alphabets: %c %c %c\n", s, t, u); if(s >= t){ tmp = s; s = t; t = tmp; } if(s >= u){ tmp = s; s = u; u = tmp; } if(t >= u){ tmp = t; t = u; u = tmp; } printf("Sorted: %c %c %c\n", s, t, u); printf("\n----------------------------\n\n"); return(0); } |