导航:首页 > 源码编译 > 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语言编译查找函数相关的资料

热点内容
程序员16k测试 浏览:541
新人程序员如何定计划 浏览:505
毕业设计单片机仿真 浏览:835
阿里ai云服务器 浏览:433
小程序云服务器可以绑个人账户吗 浏览:727
王者荣耀体验服ios怎么登陆安卓的 浏览:285
客户想要的与程序员理解的 浏览:669
硅谷一普通程序员的一天 浏览:456
算法实现两个集合合并 浏览:74
班长命令什么意思 浏览:139
51单片机c语音 浏览:733
悦翔v3压缩比 浏览:715
oppo怎样修改手机里的文件夹名称 浏览:218
PHP图片上传替换 浏览:140
androidtv桌面 浏览:810
miui10版本怎么隐藏app 浏览:52
阿里云服务器怎么输入命令 浏览:426
如何通过服务器连接网络 浏览:664
一张大事年表pdf 浏览:397
鸡兔同笼java编程 浏览:611