输入:
第一行:N
第二行:N名学生成绩,相邻两数有空格
第三行:给定分数
当N=0时程序结束
输出:
获得给定分数的学生的人数
#include<iostream>
using namespace std;
int main(){
int n;
int stu[1001];
int score[101]={0};
int flag;
while(cin>>n){
if(n==0) break;
for(int i=0;i<n;i++){
cin>>stu[i];
score[stu[i]]++;
}
cin>>flag;
cout<<score[flag]<<endl;
}
return 0;
}
运行结果
优化版本程序
#include<iostream>
using namespace std;
int main(){
int n;
while(cin>>n){
if(n==0) break;
int score[101]={0};
for(int i=1;i<=n;i++){
int x;
cin>>x;
score[x]++;
}
int flag;
cin>>flag;
cout<<score[flag]<<endl;
}
return 0;
}
其中的score[ ]数组就是此题中的Hash数组,Hash思想