《算法笔记》3.2小节——入门模拟->查找元素
问题 A: 统计同成绩学生人数
题目描述
读入N名学生的成绩,将获得某一给定分数的学生人数输出。
输入
测试输入包含若干测试用例,每个测试用例的格式为
第1行:N
第2行:N名学生的成绩,相邻两数字用一个空格间隔。
第3行:给定分数
当读到N=0时输入结束。其中N不超过1000,成绩分数为(包含)0到100之间的一个整数。
输出
对每个测试用例,将获得给定分数的学生人数输出。
样例输入 Copy
4
70 80 90 100
80
3
65 75 85
55
5
60 90 90 90 85
90
0
样例输出 Copy
1
0
3
#include<stdio.h>
int main(){
int n,num=0;
while(scanf("%d",&n)!=EOF,n){
int a[n];
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
int b;
scanf("%d",&b);
for(int i=0;i<n;i++){
if(a[i]==b){
num++;
}
}
printf("%d\n",num);
}
return 0;
}
答案错误—原因未知
参考答案
#include <cstdio>
const int maxn=1010;
int a[maxn];
int main(){
int n, x;
while(scanf("%d", &n) && n!=0){
for (int i=0; i<n; i++){
scanf("%d", &a[i]);
}
scanf("%d", &x);
int k=0, count=0;
for (k=0; k<n; k++){
if(a[k]==x){
count++;
}
}
printf("%d\n", count);
}
return 0;
}