課題 1.2 メディア工学科 定番問題

<問題>

テストの点数を入力すると、成績を表示せよ。(2012年度プログラムIA テスト問題)
(100点満点のテストで、60点未満はD、60点以上70点未満はC, 70点以上80点未満はB, 80点以上90点未満はA, 90点以上はSとする)

<実行結果>

得点を入力してください: 78
成績は B です。


<解説>

アルゴリズム

フローチャート(流れ図)

プログラム


<ヒント> 条件分岐、比較演算子(より大きい、小さい、等しい、等しくない)、論理演算子 (かつ、または)

<コメント> 宮崎先生が大好きな問題。いっしょにメディア科でプログラミングを教えていた頃の例題です。



解答例

#include <stdio.h>

int main(void) {
    int i;
    char g;

    printf("得点を入力してください: ");
    scanf("%d", &i);

/*  以下、成績判定を出力してください */


/* 例1 どれかのif文がTrueになる */
#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;
}

/* 例2 イフゼンエルス(if then else)を利用した、うまい場合わけ */
#include <stdio.h>

int main(void) {
    int i;
    char g;

    printf("得点を入力してください: ");
    scanf("%d", &i);


    if (i < 60)
         g = 'D';
    else if (i < 70)
         g = 'C';
    else if (i < 80)
         g = 'B';
    else if (i < 90)
         g = 'A';
    else
         g = 'S';


    printf("成績は %c です。\n", g);

    return 0;
}