Ⅰ c语言如何用函数来实现搜索
#include<stdio.h>
intsearch(inta[],intb,intc,inti)
{
intx,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;
}
returny+1;
}
return-1;
}
intmain()
{
inti,m,pos;
scanf("%d",&m);
inta[m];
for(i=0;i<m;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<m;i++)
{
pos=search(a,m,a[i],i);
if(pos!=-1)
{
printf("FOUNDa[%d]=%d,positionis%d ",i,a[i],i+1);
return0;
}
}
if(pos==-1)
{
printf("NOTFOUND ");
}
return0;
}
这种查找方法的数组必须是从小到大的,用遍历的话就没这个问题了。
Ⅱ 求一个C语言的查表函数
switch()
case()
Ⅲ 怎么查看c语言函数
你应该是说C运行时库的函数吧,Windows通过MSDN看,Linux用man命令看。当然也可以买个C的手册,但是现在已经很少人这么做了。
Ⅳ C语言怎么实现查表
0-8之间的 设置为默认的就行了
Ⅳ 关于c语言中文件搜索函数。
函数名: findfirst(); findnext ();
功 能: 搜索磁盘目录; 取得下一个匹配的findfirst模式的文件 ;
用 法:
int findfirst(char *pathname, struct ffblk *ffblk, int attrib);
int findnext(struct ffblk *ffblk);
举例:
/* findnext example */
#include <stdio.h>
#include <dir.h>
int main(void)
{
struct ffblk ffblk;
int done;
printf("Directory listing of *.*\n");
done = findfirst("*.*",&ffblk,0);
while (!done)
{
printf(" %s\n", ffblk.ff_name);
done = findnext(&ffblk);
}
Ⅵ C语言查找函数
int Revieve(int array[], int length, int x)
{
int i =0; // 是数组的下表
for (i=0; i<length; i++) //循环
{
if (array[i] == x) // 如果是x, 则表示是要找的数, 返回 i , 是x的下表
{
return i;
}
}
return -1; // 没有则返回 -1
}
Ⅶ C语言查表
表就是自己做的.
举个简单的例子,根据公式计算后,0-100对应100度,那就直接根据AD值去对应温度
Ⅷ 急求C语言函数,可以从TABLE表中随机挑出一个数据的函数,万分感谢!!!
你这个问题可不好回答table表是个啥东东?数字数组?字符数组?一维表?二维表?单向链表?双向链表?二叉平衡树?。。。。。。
Ⅸ 用查表法在c语言中建立函数
#includevoidmain(){inta[10]={9,16,25,32,2,1,29,81,36,21};intkey,low=0,high=10-1,mid,k=-1;inti,j,t;printf("pleaseinput:");scanf("%d",&key);for(i=0;ia[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}while(low<=high){mid=(low+high)/2;if(a[mid]==key){k=mid;break;}elseif(a[mid]
Ⅹ 急求C语言中查找函数的代码
我去,几乎没有对的地方。
首先,指针默认只有一个地址的长度的空间,存不了那么多的字符。
其次,传值和传地址一塌糊涂,完全就是乱写么。
scanf的第二个参数是地址,如果本身不是指针则需要取址符。
我给你重写了算了
#include<stdio.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); /*申请一个内存空间用来存放数据,或者直接用一个大数组也可以*/
for(i=0;i<length;i++)
scanf("%d",a+i);/*a本身就是一个地址,不需要加什么符号*/
scanf("%d",&x);/*x是变量,需要取址符*/
printf("%d\n",Retrieve(a,length,x));
return 0;
}
int Retrieve(int array[],int length,int x)
{
int i;
i=0;
/* p=array; 这句其实没必要*/
while(i<length)
{
if(x==array[i])
return i;/*既然找到了,那就直接返回就行了*/
i++;
}
return -1;
}