C语言如何用函数来实现搜索
#include stdio.h
尼开远网站建设公司创新互联,尼开远网站设计制作,有大型网站制作公司丰富经验。已为尼开远上千提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的尼开远做网站的公司定做!
int search(int a[],int b,int c,int i)
{
int x,y,z;
x=i+1;
z=b-1;
y=(x+z)/2;
while(x=z)
{
if(a[y]c)
{
z=y-1;
y=(x+z)/2;
continue;
}
if(a[y]c)
{
x=y+1;
y=(x+z)/2;
continue;
}
return y+1;
}
return -1;
}
int main()
{
int i,m,pos;
scanf("%d",m);
int a[m];
for(i=0;im;i++)
{
scanf("%d",a[i]);
}
for(i=0;im;i++)
{
pos=search(a,m,a[i],i);
if(pos!=-1)
{
printf("FOUND a[%d]=%d, position is %d\n",i,a[i],i+1);
return 0;
}
}
if(pos==-1)
{
printf("NOT FOUND\n");
}
return 0;
}
这种查找方法的数组必须是从小到大的,用遍历的话就没这个问题了。
大神看看我的C语言通讯录查找函数。输入电话号码查找永远是未查找到
这段代码没有问题
你需要检查一下链表的数据内容,在调用本函数前,用输出语句先遍历一下链表看一下内容吧,估计是建表有问题,或是输入的数据存储不正确。
C语言大神求指点啊,帮忙改正以下商品查询函数search();
第一个问题
你的num和name都是什么类型的?从你输入上看 应该是char *或者是char[]型的
这样就不能用==来判断 而应该用字符串比较函数strcmp
if(sup.num==stu[i].num) 改为 if(strcmp(sup.num,stu[i].num) == 0)
第二个问题
在按照name查询时 比较的还是num
这里
if(sup.num==stu[i].num) 应改为 if(strcmp(sup.name,stu[i].name) == 0)
C语言查找函数
首先,指针默认只有一个地址的长度的空间,存不了那么多的字符。
其次,传值和传地址一塌糊涂,完全就是乱写么。
scanf的第二个参数是地址,如果本身不是指针则需要取址符。
我给你重写了算了
#includestdio.h
int Retrieve(int array[],int length,int x);/*形参x直接传值就可以了*/
int main()
{
int *a,x;
int length,i;
scanf("%d",length);
a = (int)malloc(sizeof(int)*length); /*申请一个内存空间用来存放数据,或者直接用一个大数组也可以*/
C语言数组的查找函数
#includestdio.h
int main()
{
int a[5];
int i,max,min;
printf("input number:\n");
for(i=0;i5;i++)
scanf("%d",a[i]);
max=a[0];
min=a[0];
for(i=0;i5;i++){
if(a[i]max)
max=a[i];
}
for(i=0;i5;i++){
if(a[i]min)
min=a[i];
}
for(i=0;i5;i++){
printf("%d",a[i]);
printf(" ");
}
printf("\n");
printf("最大值为%d\n",max);
printf("最小值为%d\n",min);
return 0;
}
c语言字符串的查找用什么函数
用strstr这个函数
包含文件:string.h
函数名: strstr
函数原型:extern char *strstr(char *str1, char *str2);
功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。
返回值:返回该位置的指针,如找不到,返回空指针。
文章题目:c语言信息查询函数 c语言查询方式
标题URL:http://scgulin.cn/article/hpehei.html