ページ

2012/02/29

[競技プログラミング][C言語][AOJ10016]Grading

AIZU ONLINE JUDGE http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=10016

Grading

あなたの課題は、あるクラスの数学の成績を付けるプログラムを作成することです。

プログラムは複数の学生のテストの点数を読み込みます。

テストの点数は、中間試験の点数 m、期末試験の点数 f、再試験の点数 r で構成されています。

中間試験と期末試験は 50 点満点(m, f ≤ 50)、再試験は 100 点満点 (r ≤ 100)です。

試験を受けていない場合は点数を -1 とします。

以下の手順で成績が付けられます:
  • 中間試験、期末試験のいずれかを欠席した場合成績は F。
  • 中間試験と期末試験の合計点数が 80 以上ならば成績は A 。
  • 中間試験と期末試験の合計点数が 65 以上 80 未満ならば成績は B。
  • 中間試験と期末試験の合計点数が 50 以上 65 未満ならば成績は C。
  • 中間試験と期末試験の合計点数が 30 以上 50 未満ならば成績は D。
    ただし、再試験の点数が 50 以上ならば成績は C。
  • 中間試験と期末試験の合計点数が 30 未満ならば成績は F。

Input

複数のデータセットが入力として与えられます。各データセットでは、空白で区切られた m、f、r が 1 行に与えられます。

m、f、r がすべて -1 のとき入力の終わりとします。

Output

各データセットについて、成績(A、B、C、D、または F)を1行に出力して下さい。
回答:vol100/AOJ10016.cpp at master from wada811/AOJ - GitHub
成績付けの手順そのままに条件文を記述した。
毎回 printf()を呼び出すんじゃなくて(char)grade で管理しても良かったかも。
後は点数の条件分岐で毎回足し算するのもなんか微妙な気がするんだけどどうなんだろう。
この程度の小さいプログラムだから気にしなくてもいいのかもしれないけど。

それではまた明日。