タイトル説明
グレードはFは、それぞれGPAを計算するために5つのレベル、所定のA、B、C、D、F、A、B、C、Dに分割され、各コースは4点、3点、2点、1点を表します0ポイント。
エントリー
試験サンプルの複数のセット。ライン当たりの入力データの各セットは、一つ以上の大文字で、文字間のスペースで区切られました。
輸出
行ごとの各出力。大文字は集合{A、B、C、D、F}で入力された場合、GPAに対応する出力は、2つの小数点以下をもたらします。それ以外の場合は、「不明」の出力。
サンプル入力 のコピー
ABCDF
BFFCCA
DCEF
サンプル出力 のコピー
2.00
1.83
不明
する#include <stdio.hに> する#include < 文字列・H> ボイドプロセス(チャーSTR [])。 INT のmain(){ char型 STR [ 200 ] = {}; ながら(!(STR)=取得0 {) 工程(STR)。 memsetの(STR、0、はsizeof (STR))。 } 戻り0 。 } ボイドプロセス(CHAR STR []){ int型のn = 0 。 CHAR CH; 二重の合計= 0.0 。 以下のために(int型私は= 0 ; STRを[I] =!' \ 0 ' ; I ++ ){ CH = strの[i]は、もし(CH == ' ' ){ 続けます。 } もし、(CH> = ' A ' && CH <= ' D ' ){ 合計 + = 4 - (CH - ' A ' )。 N ++ ; } それ以外の 場合は(CH == "F ' ){ 合計 + = 0.0 。 N ++ ; } 他{ のprintf(" 不明\ n " ); リターン; } } もし、(N!= 0 ){ のprintf(" %.2lf \ n "、和/(ダブル)N)。 } }
図1に示すように、複数行の入力処理
文字列の末尾が決定され、
STR [I]!= '\ 0'
元の文字列の内容を空に