/*
问题:读入N名学生的成绩,将获得某一给定分数的学生人数输出
输入:
第一行:N
第二行:N名学生成绩,相邻两数字之间用一个空格间隔
第三行:给定分数
督导N=0时,结束输入,N<=1000
样例:
输入
3
80 60 90
60
2
85 66
0
5
60 75 90 55 75
75
0
输出:
1
0
2
思路:
在给定的数中,找到最大的数,找到小于该最大数的最大质数,然后用每个数去除以该质数,得到的值就存放在A[1000]中相应的下标位置
在给定一个分数,计算出哈希值,
哈希的思路:
Hash[x] 保存的是数字x出现的次数,建立了一种一一映射的关系
关键:
1 Hash[x] 保存的是数字x出现的次数,建立了一种一一映射的关系
2 判断输入的数字是不是0,不要放在循环体内,只需要放到循环条件内
while(EOF!=scanf("%d",&n) && n!=0)
*/
/*数组遍历思路
#include <memory.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char* argv[])
{
int iNum;
bool isExit = false;
int iBuf[20][1000];
int iGiv[20];
int iRes[20];
int k = 0;
while(EOF!=scanf("%d",&iNum))
{
if(0 > iNum || iNum > 1000)
{
break;
}
else if(0==iNum)
{
//isExit = true;
break;
}
int iValue,i;
for(i = 0; i
机试算法讲解: 第5题 读入N名学生的成绩,将获得某一给定分数的学生人数输出
本文介绍了一道机试算法题,要求读入N名学生的成绩,并输出获得给定分数的学生人数。通过使用哈希数组来存储和统计成绩,实现了一种高效的一对一映射解决方案。示例代码分别展示了两种不同的实现思路,一种基于数组遍历,另一种基于哈希计数。
摘要由CSDN通过智能技术生成