加载中...

浙江理工大学入队200题——16G

问题 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;
}
posted @ 2022-10-30 11:02  shany212  阅读(68)  评论(0编辑  收藏  举报