问题 G: 零基础学C/C++178——成绩统计
题目描述
兴趣小组收集学员成绩信息,每个学员的成绩有两种表示方法,一种用best、good、poor三种等级来表示,还有一种就是直接用分数来表示(百分制)。请保持学员成绩信息,并且统计有多少人是用等级来表示成绩的,用分数来表示成绩的人的平均分是多少(取整)
输入
第1行输入1个正整数n表示学员人数(n<=1000)
第2~n+1行,每行一个字符和一个字符串,中间用一个空格隔开。第一个字符串表示这个学生成绩类型,有C、N两种,分别代表等级表示和分数表示,第二个字符串表示成绩信息
输出
一行两个整数,分别表示用等级表示成绩的人数和用分数表示成绩的人的平均分(取整),中间用一个空格隔开
样例输入 Copy
5
C best
C good
N 90
C poor
N 98
样例输出 Copy
3 94
题解
输出两个数,一个是前面是C的人数,一个是前面是N的平均分,拆分成两个小问题(这题其实不用结构体还快一点)
代码(AC)
点击查看代码
#include <stdio.h>
int main ()
{
int n,g[1003],count,sum;
char a[1003],b[1003];
scanf("%d",&n);
while(scanf("%d",&n)!=EOF)
{
count=0;
sum=0;
for(int i=0;i<n;i++)
{
scanf("%s",&a[i]);
if(a[i]=='C')
{
gets(b);
}
else
{
scanf("%d",&g[i]);
sum+=g[i];
count++;
}
}
printf("%d %d\n",n-count,sum/count);
}
return 0;
}