導航:首頁 > 源碼編譯 > c語言編譯查找函數

c語言編譯查找函數

發布時間:2022-05-31 11:16:52

① 求c語言大神 題目:編寫查找函數search(),實現如下功能。

#include <stdio.h>
int search(int arr[],int len,int num)//arr為序列,len為序列長度,num為要查找的數
{
int start,end,mid;
start=0;
end=len-1;
mid=(start+end)/2;
while(start<=end)
{
if(arr[mid]>num)
{
end=mid-1;
mid=(start+end)/2;
continue;
}
if(arr[mid]<num)
{
start=mid+1;
mid=(start+end)/2;
continue;
}
return mid+1;
}
return -1;
}

int main()
{
int a[100],i,m,num,pos;
printf("輸入序列長度:");
scanf("%d",&m);
printf("輸入一個長度為%d的有序序列:\n",m);
for(i=0;i<m;i++)
{
scanf("%d",&a[i]);
}
printf("輸入你要查找的數:");
scanf("%d",&num);
pos=search(a,m,num);
if(pos==-1)
printf("未能在序列中找到你要查找的數。\n");
else
printf("你要查找的數在第%d個位置\n",pos);
return 0;
}

② 急求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;
}

③ C語言數組的查找函數

#include<stdio.h>
int main()
{
int a[5];
int i,max,min;
printf("input number:\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
max=a[0];
min=a[0];
for(i=0;i<5;i++){
if(a[i]>max)
max=a[i];
}
for(i=0;i<5;i++){
if(a[i]<min)
min=a[i];
}
for(i=0;i<5;i++){
printf("%d",a[i]);
printf(" ");
}
printf("\n");
printf("最大值為%d\n",max);
printf("最小值為%d\n",min);
return 0;
}

④ 關於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語言如何用函數來實現搜索

#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語言函數find的使用方法

c語言find函數的用法詳解

C語言之find()函數

find函數用於查找數組中的某一個指定元素的位置。

比如:有一個數組[0, 0, 5, 4, 4];

問:元素5的在什麼位置,find函數 返回值 為 2;

find (數組名 + 起始查找元素的位置, 數組名 + 結束查找的元素位置, 想要查找的元素)

直接上代碼:

#include <iostream>
#include <vector>
#include <algorithm>//注意要包含該頭文件
using namespace std;
int main()
{
int nums[] = { 3, 1, 4, 1, 5, 9 };
int num_to_find = 5;
int start = 0;
int end = 5;
int* result = find( nums + start, nums + end, num_to_find );
if( result == nums + end )
{
cout<< "Did not find any number matching " << num_to_find << endl;
}
else
{
cout<< "Found a matching number: " << *result << endl;
}
return 0;
}

⑦ c語言 編寫一個函數,其功能為搜索由第一個參數指定的字元串,在其中查找由第二個參數指定的字元第一次

這樣:

#include<stdio.h>

// 計算字元串長度

int len(char a[])

{

int temp=0,i;

for(i=0;a[i]!='';i++)

temp++;

return temp;

}

// 獲取子串在源串中首次出現的位置索引

int index(char a[], char b[])

{

int i,j,temp;

for(i=0;i<len(a)-len(b);i++)

{

temp=i;

j=0;

while(j<=len(b) && a[temp]==b[j])

{

temp++;

j++;

}

if(j==len(b))

return i;

}

return -1;//返回-1則沒找到指定的子串,否則找到

}

void main()

{

char a[]="hello";

a[len(a)]=' ';//演算法改進,在數組a的末尾新增一個空的元素,這樣才能hello中找到hello

printf("%d ",index(a,"llo"));

}

(7)c語言編譯查找函數擴展閱讀:

注意事項

頭文件:#include <string.h>

strchr() 用來查找某字元在字元串中首次出現的位置,其原型為:

char * strchr (const char *str, int c);

參數:str 為要查找的字元串,c 為要查找的字元。

strchr() 將會找出 str 字元串中第一次出現的字元 c 的地址,然後將該地址返回。

注意:字元串 str 的結束標志 NUL 也會被納入檢索范圍,所以 str 的組後一個字元也可以被定位。

返回值:如果找到指定的字元則返回該字元所在地址,否則返回 NULL。
返回的地址是字元串在內存中隨機分配的地址再加上你所搜索的字元在字元串位置。設字元在字元串中首次出現的位置為 i,那麼返回的地址可以理解為 str + i。

提示:如果希望查找某字元在字元串中最後一次出現的位置,可以使用strrchr()函數。

實例:查找字元5首次出現的位置。

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

intmain(){

char*s="";

char*p;

p=strchr(s,'5');

printf("%ld ",s);

printf("%ld ",p);

system("pause");

return0;

}

輸出結果:

12016464

12016469

⑧ 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); /*申請一個內存空間用來存放數據,或者直接用一個大數組也可以*/

⑨ c語言字元串的查找用什麼函數

用strstr這個函數
包含文件:string.h
函數名: strstr
函數原型:extern char *strstr(char *str1, char *str2);
功能:找出str2字元串在str1字元串中第一次出現的位置(不包括str2的串結束符)。
返回值:返回該位置的指針,如找不到,返回空指針。

⑩ 怎麼查找c語言中的類庫和函數

C語言不支持類,自然也不存在什麼類庫,至於函數,直接看編譯器頭文件目錄include裡面的.h文件就是,如stdio.h,stdlib.h,string.h,conio.h等。

閱讀全文

與c語言編譯查找函數相關的資料

熱點內容
xp自動備份指定文件夾 瀏覽:660
我的世界伺服器如何讓世界平坦 瀏覽:167
伺服器和電腦如何共享 瀏覽:685
程序員早期症狀 瀏覽:568
學小學生編程哪裡學 瀏覽:947
單片機控制與設計論文 瀏覽:775
破解加密視頻違法嘛 瀏覽:242
pythonforandroid下載 瀏覽:235
進光遇顯示伺服器繁忙怎麼辦 瀏覽:643
安卓手機如何改成蘋果xr 瀏覽:519
華為伺服器為什麼在山裡 瀏覽:274
黑馬程序員基礎測試題 瀏覽:265
網易伺服器如何ban物品指令 瀏覽:817
安卓微信不更新了怎麼辦 瀏覽:155
專業程序員什麼水平 瀏覽:879
如何查看伺服器硬碟剩餘空間 瀏覽:574
cdda演算法 瀏覽:412
javawebserver 瀏覽:68
安卓手機怎麼看視頻區域限制 瀏覽:156
php獲取二級域名 瀏覽:471