顺序查找:在一个 已知无序队列中找出 与 给定关键字相同的数的具体位置。
原理是让关键字与队列中的数从第一个开始逐个比较,直到找出与给定关键字相同的数为止。复杂度为o(n).
查找某个元素是否存在
#include <stdio.h>
int main ( )
{
int i,x,a[10] ;
printf("
输入10个整数:") ;
for(i=0 ; i<10 ;i++)
scanf("%d",&a[i]) ;
printf("
输入待查找元素:") ;
scanf("%d",&x);
for(i=0 ; i<10 ;i++)
if(a[i]==x) break ;
if(i<10) printf("元素%d存在
",x);
else printf("元素%d不存在
",x) ;
}
#include <stdio.h>
int main ( )
{
int i,x, N;
printf("
输入整数N为:") ;
scanf("%d",&N) ;
int a[N] ;
printf("
输入N个整数:") ;
for(i=0 ; i<N ;i++)
scanf("%d",&a[i]) ;
printf("
输入待查找元素:") ;
scanf("%d",&x);
for(i=0 ; i<N ;i++)
if(a[i]==x) break ;
if(i<N) printf("元素%d存在
",x);
else printf("元素%d不存在
",x) ;
}
**********************************************************************************************************************************
#include<stdio.h> int fun(int a[],int n,int x) { int i; for(i=0;i<n;i++) { printf("该点是%d ",a[i]); if(a[i]==x) { puts("找到 "); return(i); }//查找到,返回位置 } if(i==n) return(-1);//没有找到,返回-1 } main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; int p,m; scanf("%d",&p); printf("你要查找%d. ",p); m=fun(a,10,p); if(m==-1) printf("没有找到啊 "); }
#include <stdio.h> //顺序查找: int search1(int a[],int x,int n) //x为要查找的元素,n为数组长度 { int i; for (i=0;i<n;i++) { if (a[i]==x) return i; } return -1; } int main() { int i,a[10],x; for (i=0;i<10;i++) scanf("%d",&a[i]); printf("请输入要查找的元素" ); scanf("%d",&x); if (search1(a,x,10)!=-1)printf("查找的元素在数组中的位置为%d. ",search1(a,x,10)); else printf("该元素不在数组中 "); return 0; }
#include <stdio.h>
//顺序查找:
int search1(int a[],int x,int n) //x为要查找的元素,n为数组长度
{
int i;
for (i=0;i<n;i++)
{
if (a[i]==x)
return i;
}
return -1;
}
int main()
{
int i,a[10],x;
for (i=0;i<10;i++)
scanf("%d",&a[i]);
printf("请输入要查找的元素" );
scanf("%d",&x);
if (search1(a,x,10)!=-1)printf("查找的元素在数组中的位置为%d.
",search1(a,x,10));
else printf("该元素不在数组中
");
return 0;
}
/*顺序查找:*/ #include<stdio.h> int main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; int i,x,y; printf("输入你要查找的数: "); scanf("%d",&x); y=0; //标记是否已找到,y=1表是找到了,y=0表示没找到 for (i=0;i<10;i++) //循环,把x和数组中的元素一个个比较 { if (x==a[i]) //如果x=a[i]说明已经找到 { y=1; //把y变成1,说明已经找到了 printf("你要查找的数%d在第个%d位置 ",x,i+1); //输出找到的相关信息 break; //跳出循环 } } if (y==0)printf("无法找到你要查找的数 "); //y=0表示找不到 }
输出满足条件数组元素 下标i
#include <stdio.h>
int main ( )
{
int i,x, a[11]={ -1,12,23,42,56,65,81,92,100,109} ;
scanf("%d",&x);
for (i=0;i<10;i++)
if (a[i]>=x) printf("元素下标 %d
",i);
return 0;
}
输出满足条件数组元素 的 位置 第几个元素
#include <stdio.h>
int main ( )
{
int i,x, a[11]={ -1,12,23,42,56,65,81,92,100,109} ;
scanf("%d",&x);
for (i=0;i<10;i++)
if (a[i]>=x) printf("第 %d 个元素
",i+1);
return 0;
}
输出满足条件的数组元素
#include <stdio.h>
int main ( )
{
int i,x, a[11]={ -1,12,23,42,56,65,81,92,100,109} ;
scanf("%d",&x);
for (i=0;i<10;i++)
if (a[i]>=x) printf("元素 %d
",a[i]);
return 0;
}