1回目のレポート : まずは、 「章立て」の形に注意 だんだんと。

情報工学科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文に { }がつく場合と、つかない場合の区別がわからないので、教えてください。
 今回は、意外と簡単にできました。 (ごめんなさい、今年は立て込んでいて、各自にはコメントできないこともあります)

章立ての形