ページ

2012/06/11

[競技プログラミング][C言語][AtCoder]GPA計算

A - GPA計算

時間制限 : 2sec / スタック制限 : 10MB / メモリ制限 : 64MB

問題文

高橋君はアメリカに留学しようと考えており、成績表を提出することになりました。
アメリカ留学の成績表には、学力を測る指標であるGPAを表記する必要があります。
GPAとは各単位に対する評価(A,B,C,D,F)を点数に換算して平均した値で、点数への換算は以下のようになります。
A評価 → 4 点
B評価 → 3 点
C評価 → 2 点
D評価 → 1 点
F評価 → 0 点
全てF評価だった場合は、GPAは 0 になります。
高橋君の各単位に対する評価をもとにGPAを求めなさい。

入力

入力は以下の形式で標準入力から与えられる。
N
r1r2…rN
1 行目は、単位の総数を表す整数 N(1≦N≦100) が与えられる。
2 行目には、単位に対する評価を表す N 文字の文字列が与えられる。
i 文字目の文字 ri は A, B, C, D, F のいずれかである。

出力

入力として与えられた単位の評価をもとにしたGPAを標準出力に 1 行で出力せよ。
誤差は絶対誤差あるいは相対誤差の少なくとも片方が 1e^−9 以下であれば許容する。(1e^−9=10^−9)
なお、最後には改行を出力せよ。

出典

A: GPA計算 - AtCoder Regular Contest #003 | AtCoder

回答

AtCoder/arc003_1.cpp at master · wada811/AtCoder · GitHub
アスキー文字の差分取ってswitch文でbreakしないで流すのは上手いことやったと思ったわー
例題の精度ミスと変換修飾子の良い指定の仕方の模索に時間を喰った記憶がある。
double型で小数点以下に0が続く場合にその0を省いて表示するにはgをつければ良い。
普段使わないからこれを見つけるのに一番時間かかった。