1038 统计同成绩学生 (20 分)
Posted anber82
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1038 统计同成绩学生 (20 分)相关的知识,希望对你有一定的参考价值。
题目:1038 统计同成绩学生 (20 分)
本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出。
输入格式:
输入在第 1 行给出不超过 1 的正整数 N,即学生总人数。随后一行给出 N 名学生的百分制整数成绩,中间以空格分隔。最后一行给出要查询的分数个数 K(不超过 N 的正整数),随后是 K 个分数,中间以空格分隔。
输出格式:
在一行中按查询顺序给出得分等于指定分数的学生人数,中间以空格分隔,但行末不得有多余空格。
输入样例:
10 60 75 90 55 75 99 82 90 75 50 3 75 90 88
输出样例:
3 2 0
思路:
- 类似打表。设立一个可以容纳所有分数的数组,即开一个100的数组就可以了,为了保险起见可以开得比这大。
- 每输入一个数,就将这个数作为数组下标,进行分数计入,这样可以马上得到截止目前的该分数的人数。
- 查询指定分数的学生人数时直接代入数组下标即可。
注意起初清空数组。
代码:
1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #include <sstream> 5 #include <cmath> 6 #include <algorithm> 7 #include <string> 8 #include <stack> 9 #include <queue> 10 #include <vector> 11 #include <map> 12 using namespace std; 13 14 int main() 15 16 int a[105]; 17 int n, k, num; 18 memset(a, 0, sizeof(a)); 19 scanf("%d", &n); 20 for(int i = 0; i < n; i++) 21 22 scanf("%d", &num); 23 a[num]++; 24 25 scanf("%d", &k); 26 for(int i = 0; i < k; i++) 27 28 scanf("%d", &num); 29 printf("%d", a[num]); 30 if(i != k-1) 31 printf(" "); 32 33 return 0; 34
总结:
深知自己的不足,于是踏踏实实从最基础开始做起。这种题可以一次过,稍微难一点就要错个几次。一个人只有先正确的认识自己,才能更好的发展自己。知其能,亦知其所不能。
以上是关于1038 统计同成绩学生 (20 分)的主要内容,如果未能解决你的问题,请参考以下文章