查找是计算机处理大量数据时最普遍的功能。顺序查找实际上是枚举法的应用。
期中考试结束了,数学老师已经把所有数学成绩按从高到低的顺序排列好。请编写一个程序,根据输入的个人数学成绩获得本次考试的排名。
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