题目大意:
A等于4,B等于3,C等于2,D等于1,F等于0,给出一串只有大写字母和空格的字符串,计算平均值,出现未知字母输出Unknown letter grade in input
大致思路:
直接用gets()或者getline()读入整行,并遍历每个字符
c语言:
#include<stdio.h>
#include<string.h>
char c[10000];
int main()
{
int count=0,flag=1; //flag用于记录是否出现未知字符
double sum=0;
while(gets(c))
{
int len=strlen(c);
for(int i=0;i<len;i++)
{
switch(c[i])
{
case 'A':
sum+=4,count++;
break;
case 'B':
sum+=3,count++;
break;
case 'C':
sum+=2,count++;
break;
case 'D':
sum+=1,count++;
break;
case 'F':
count++;
break;
case ' ':
break;
default:
flag=0;
break;
}
}
if(!flag)
printf("Unknown letter grade in input\n");
else
printf("%.2lf\n",sum/count);
flag=1,count=0,sum=0;
}
return 0;
}
c++: