题目1018:统计同成绩学生人数
题目描述:
读入N名学生的成绩,将获得某一给定分数的学生人数输出。
输入:
测试输入包含若干测试用例,每个测试用例的格式为
第1行:N
第2行:N名学生的成绩,相邻两数字用一个空格间隔。
第3行:给定分数
当读到N=0时输入结束。其中N不超过1000,成绩分数为(包含)0到100之间的一个整数。
输出:
对每个测试用例,将获得给定分数的学生人数输出。
样例输入:
3
80 60 90
60
2
85 66
0
5
60 75 90 55 75
75
0
样例输出:
1
0
2
来源:
2006年浙江大学计算机及软件工程研究生机试真题
code
C语言实现
#include<stdio.h>
int main() {
int N,i,x,flag;
int *p = NULL;
while(scanf("%d",&N) != EOF) {
if (N == 0)
break;
else if (N<0 || N>1000)
continue;
else {
flag = 0;
p = (int*)malloc(sizeof(int)*N);
for (i=0;i<N;i++) {
scanf ("%d",p+i);
if(p[i]<0 || p[i]>100) {
i--;
}
}
scanf ("%d",&x);
for(i=0;i<N;i++) {
if(p[i] == x)
flag++;
}
printf("%d\n",flag);
}
}
return 0;
}
/**************************************************************
Problem: 1018
User: langzimaizan
Language: C
Result: Accepted
Time:10 ms
Memory:912 kb
****************************************************************/