【Hash应用问题】例3.1 统计同成绩学生人数

三 Hash应用

概念: 将储存位置与数据本身对应起来的储存手段就是Hash.

题目描述:
读入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

解题思路: 建立一个数组, 数组下标范围不小于输入数字范围, 本题输入一定为整数, 因此, 输入的数与数组下标可以对应, 数组的内容即为, 与对应下标一致的输入数的个数.

#include<bits/stdc++.h>
using namespace std;

int main()
{
	int n;
	while(scanf("%d", &n) != EOF && n != 0){//n=0时输入结束 
	int Hash[101] = {0};
	for(int i=0; i<n; i++){
		int x;
		cin >> x;
		Hash[x]++; 
		}
	int x;
	cin >> x;
	cout << Hash[x];
	}
	return 0;
}

结束


猜你喜欢

转载自blog.csdn.net/zdx1996/article/details/86561849