本文主要是介绍1010:平均绩点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1010:平均绩点分数: 10
时间限制:1 秒
内存限制:32 兆
特殊判题: 否
提交:69
解决: 25
标签
题目描述
每门课的成绩分为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(){int i=0,n=0,l;//n是用来计算字母个数 ,l是后来根据别人的代码发现可以用strlen函数算出字符串的长度 double sum=0;int sign=1;char a[100];while(gets(a)){l=strlen(a);for(i=0;i<l;i+=2){if(a[i]=='A')sum+=4,n++;//n是用来计算字母个数 else if(a[i]=='B')sum+=3,n++;else if(a[i]=='C')sum+=2,n++;else if(a[i]=='D')sum+=1,n++;else if(a[i]=='F')//一开始以为F时,sum不变就把它去掉了,但是由于要计算字母数,所以仍要保留 n++; else sign=0;} if(sign==1){printf("%.2f\n",sum/n);sum=0; //sum初始化! }else{printf("Unknown\n");sum=0; }n=0; sign=1;//忘记了把sign也给初始化了! }}
这篇关于1010:平均绩点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!