题目
读入N名学生的成绩,将获得某一给定分数的学生人数输出。
Input
测试输入包含若干测试用例,每个测试用例的格式为
第1行:N
第2行:N名学生的成绩,相邻两数字用一个空格间隔。
第3行:给定分数
当读到N=0时输入结束。其中N不超过1000,成绩分数为(包含)0到100之间的一个整数。
Output
对每个测试用例,将获得给定分数的学生人数输出。
Sample Input
3
80 60 90
60
2
85 66
0
5
60 75 90 55 75
75
0
Sample Output
1
0
2
题意
要求测试多组数据,当测试某一组数据时,输入的两个成绩之间用一个空格隔开。空行输入给出分数,空行输出与给出分数相同的人数。
解题思路
1.要求测试多组数据,且以N=0时结束,故while (scanf(“%d”, &N)&&N!=0),当N=0时,条件不成立,退出测试。
2.定义数组时,比题目要求的大一点,防止越界。
3.用循环语句将成绩储存于数组a中。
4.设置计数器cunt,当有成绩等于给出成绩时,计数器+1.
代码
#include <stdio.h>
int main()
{
int N;
while (scanf("%d", &N)&&N!=0)
{
int a[1005];
int i=0;
while (N--)
{
scanf("%d", &a[i]);
i++;
}
int aim;
scanf("%d" , &aim);
int j;
int cunt = 0;
for(j = 0; j < i; j++)
if(aim == a[j])
cunt++;
printf("%d\n",cunt );
}
return 0;