AtCoder Regular Contest #003 A GPA計算

問題概要

問題文
成績が与えられる。成績の得点の平均値を出力せよ。
ただし、誤差は1e-9以下であること。

解き方

Aが4点、Bが3点、Cが2点、Dが1点、Fが0点であるから、
得点はFを例外にして、4-{(char型の成績)-'A'}で求められる。
あとは個数で割って誤差に注意するだけ。
C++なら精度はcout.precision()で設定できる。

ソースコード

#include <iostream>
#include <string>
using namespace std;
int main (int argc, const char * argv[])
{    
    int n;
    string str;
    cin>>n>>str;
    double res=0;
    for (int i=0; i<n; i++) {
        if (!(str[i]=='F')) {
            res+=4-(str[i]-'A');
        }
    }
    cout.precision(20);
    cout<<res/n<<endl;
    return 0;
}