时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 1498 | 通过数 : 830
题目描述
上小学的小CC刚考完期末考试,拿到成绩的她想知道自己的成绩如何,你能帮帮她吗?
输入要求
第一行输入N(1< N < 100)个学生,第2--N+1行输入N个学生的姓名s(少于10个字符)、语文成绩c、数学成绩m、英语成绩e。
输出要求
三门成绩80(含分)以上评定为A级,两门成绩80以上评定为B级,一门成绩80以上评定为C级,其余为D级,分四行显示A,B,C,D的人数。
输入样例
3 zhangsan 65 45 87 lisi 78 89 93 lkfhi 87 67 54
输出样例
0 1 2 0
提示
来源
NBU OJ
#include<stdio.h>
typedef struct S{
char id[100];
int c,m,e;
char rank;
}stu;
int main()
{
int n;
scanf("%d",&n);
stu s[n];
for(int i=0;i<n;i++)
{
scanf("%s",&s[i].id);
scanf("%d%d%d",&s[i].c,&s[i].m,&s[i].e);
}
for(int i=0;i<n;i++)
{
if((s[i].c>=80&&s[i].m>=80&&s[i].e<80)||(s[i].c>=80&&s[i].e>=80&&s[i].m<80)||(s[i].m>=80&&s[i].e>=80&&s[i].c<80))
s[i].rank='B';
else if(s[i].c>=80&&s[i].m>=80&&s[i].e>=80)
s[i].rank='A';
else if((s[i].c>=80&&s[i].m<80&&s[i].e<80)||(s[i].c<80&&s[i].e<80&&s[i].m>=80)||(s[i].m<80&&s[i].e>=80&&s[i].c<80))
s[i].rank='C';
else
s[i].rank='D';
}
int sum1=0,sum2=0,sum3=0,sum4=0;
for(int i=0;i<n;i++)
{
if(s[i].rank=='A')
sum1++;
if(s[i].rank=='B')
sum2++;
if(s[i].rank=='C')
sum3++;
if(s[i].rank=='D')
sum4++;
}
printf("%d\n%d\n%d\n%d\n",sum1,sum2,sum3,sum4);
return 0;
}