这是我学习唐峻,李淳的《C/C++常用算法第一天》
1.8.1. 查找数字:
程序随机生成一个拥有20个整数数据的数组,然后输入要查找的数据。接着,可以采用醉简单的逐个对比的方法进行查找,也就是顺序查找的方法,下面给出该算法完整的C语言代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 20
int main(){
int arr[N],x,n,i;
int f=-1;
srand(time(NULL));///随机数种子
///printf("%lf",time(NULL));
for(i=0;i<N;i++){
arr[i]=rand()%50;///产生数据范围在50以内的数组。
//printf("%d ",arr[i]);
}
printf("输入要查找的整数:");
scanf("%d",&x);///输入要查找的数字。
for(i=0;i<N;i++){///顺序查找
if(x==arr[i]){///找到数据
f=i;
break;
}
}
printf("\n随机生成的数据序列:\n");
for(i=0;i<N;i++){
printf("%d ",arr[i]);///输出序列
}
printf("\n\n");
///输出查找结果
if(f<0){
printf("没有找到数据:%d\n",x);
}else{
printf("数据:%d位于数组的第%d个元素处.\n",x,f+1);
}
system("pause");
return 0;
}
在该程序中,main()函数生成20个(0—49以内)随机数,然后使用for语句和if
语句进行顺序查找。当查找到该第一个数据时,便退出查找,输出该
数据的位置,否则输出没找到的数据。