Ⅰ 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;
}