题目描述
每门课的成绩分为A、B、C、D、F五个等级,为了计算平均绩点,规定A、B、C、D、F分别代表4分、3分、2分、1分、0分。
输入格式
有多组测试样例。每组输入数据占一行,由一个或多个大写字母组成,字母之间由空格分隔。
输出
每组输出结果占一行。如果输入的大写字母都在集合{A,B,C,D,F}中,则输出对应的平均绩点,结果保留两位小数。否则,输出“Unknown”。
样例输入
A B C D F
B F F C C A
D C E F
样例输出
2.00
1.83
Unknown
#include<stdio.h>
#include<string.h>
int main()
{
char a[80];
int i,l,n;
double s;
while(gets(a))
{
l=strlen(a);
for(n=s=i=0;i<l;i=i+2)
{
if(a[i]=='A')
s+=4;
else if(a[i]=='B')
s+=3;
else if(a[i]=='C')
s+=2;
else if(a[i]=='D')
s+=1;
else if(a[i]!='F')
n++;
}
printf(n?"Unknown\n":"%.2lf\n",s/((l+1)/2));
}
return 0;
}