查找是计算机处理大量数据时最普遍的功能。顺序查找实际上是枚举法的应用。
期中考试结束了,数学老师已经把所有数学成绩按从高到低的顺序排列好。请编写一个程序,根据输入的个人数学成绩获得本次考试的排名。
C语言代码清单 1:根据输入的个人成绩获得考试排名(顺序查找)
#include <stdio.h>
#include <stdlib.h>
int main( )
{
int i,S;
int a[100];
printf("从高到低输入成绩(空格分隔),\n");
printf("全部输入后,输入0并回车!\n");
for(i=0;i<100;i++){ //用for循环给数组元素赋值
scanf("%d",&a[i]);
if(a[i]==0) break; //接收到0,则退出循环
}
printf("名次查询(输入0结束查询):\n");
do{
printf("输入成绩:");
scanf("%d",&S);
i=0;
if(S==0) break; //输入0结束查询
while(a[i]!=0){
if(a[i]==S) break; //找到目标退出循环
i++;
}
if(a[i]==S)
printf("%d\n",i+1); //输出名次
else
printf("未找到该成绩!");
}while(S!=0);
system("pause");
return 0;
}
运行结果:
从高到低输入成绩(空格分隔),
全部输入后,输入0并回车!
98 87 77 64 61 51 0
名次查询(输入0结束查询):
输入成绩:64
4
输入成绩:63
未找到该成绩!输入成绩:77
3
输入成绩:87
2
输入成绩:0