情報工学科2年 t600444 土屋ゼミ 土屋孝文 1. 101のプログラム いわゆる勝ち抜き型で最大値を決めるプログラムを書いた。プログラムには説明のコメント文をつけた。 #include <stdio.h> int main(void) { int a,b,c; int m; /* 入力処理 */ printf("1番目の整数を入力してください: "); scanf("%d", &a); printf("2番目の整数を入力してください: "); scanf("%d", &b); printf("3番目の整数を入力してください: "); scanf("%d", &c); /* いわゆる勝ち抜き型で最大値を決める */ m = a; /* 最初の入力を暫定一位 */ if (b > m) /* 以下、更新するかどうか */ m = b; if (c > m) m = c; printf("一番大きい数は %dです。\n", m ); /* 最大値を出力 */ return 0; } 2.101の実行例 最初が最大値の場合、2つ目が最大値の場合、3つ目が最大値の場合に、正しい解が出力されることを確認した。 UNIX マシンでコンパイルし、実行した。 [z190119@ls01 p1]% ./0101 1番目の整数を入力してください: 5 2番目の整数を入力してください: 4 3番目の整数を入力してください: 3 一番大きい数は 5です。 [z190119@ls01 p1]% ./0101 1番目の整数を入力してください: 4 2番目の整数を入力してください: 5 3番目の整数を入力してください: 3 一番大きい数は 5です。 [z190119@ls01 p1]% ./0101 1番目の整数を入力してください: 3 2番目の整数を入力してください: 4 3番目の整数を入力してください: 5 一番大きい数は 5です。 3つの場合に、正しい解が得られた。 3. 102のプログラム 点数について、完全に場合分けを行って成績を対応づけるプログラムである。 ただし、入力される点数は0から100点までを仮定している。 #include <stdio.h> int main(void) { int i; /* 得点 */ char g; /* 成績 */ printf("得点を入力してください: "); scanf("%d", &i); /* どれかの条件に分類される */ if (i < 60 ) g = 'D'; if (i >= 60 && i < 70) g = 'C'; if (i >= 70 && i < 80) g = 'B'; if (i >= 80 && i < 90) g = 'A'; if (i >= 90 && i =< 100) g = 'S'; printf("成績は %c です。\n", g); return 0; } 4. 102の実行例 DとSにあたる入力を確認した。 [tsuchiya@www1 c]$ ./102 得点を入力してください: 45 成績は D です。 [tsuchiya@www1 c]$ ./102 得点を入力してください: 97 成績は S です。 正しい成績が出力された。 5. おわりに 101では、3つの整数から最大値を求めるプログラムを作成した。最初は例題0202 (if else)を参考にプログラムを 考えたが、比較する数が多い場合を考慮していわゆる暫定一位を更新していく勝ち抜きプログラムを実装した。 102では、得点に応じて、どれかのif文がTとなるプログラムを書いた。思いつかなかったが、他のアルゴリズムも ありそうだ。 ----------------- そのほか、(この授業の場合は)メッセージあれば、どうぞ
たとえば
ifやfor文に { }がつく場合と、つかない場合の区別がわからないので、教えてください。
今回は、意外と簡単にできました。 (ごめんなさい、今年は立て込んでいて、各自にはコメントできないこともあります)
章立ての形
- 1. 2. と章の番号をつけて、章立てをします。章には、タイトルをつける。今回は、4章で、4つのタイトルを示しました。
- 1. 2. と半角英数字で番号を振る。変えないこと。
- 1. 101 .のあと、101の前に半角スペースを入れること。 英数字では、, .のあとには、半角スペース。
- 各章には、何を報告しているのか、小さな文をつけるとよい。