当前位置:首页 » 编程语言 » c语言中的数组查找函数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中的数组查找函数

发布时间: 2022-07-02 01:20:59

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

2. C语言查找数组中的数据

#define IntSize sizeof(int)
#define StructSize sizeof(struct tagresult)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef int *ptint;
typedef struct tagresult
{
int v;
char bl;
}*ptresult;

int lessthan(const void *v1,const void *v2)
{
int i1=*((ptint)v1),i2=*((ptint)v2);

if(i1==i2)
return 0;
else if(i1<i2)
return 1;
else
return -1;
}

int main()
{
int c,n,capacity=128,rlen=0,dlen;
ptint data=(ptint)calloc(capacity,IntSize);
ptresult result;

scanf("%d",&n);
result=(ptresult)calloc(n,StructSize);
memset(result,0,n*StructSize);
while(n-->0)
{
scanf("%d",&c);
dlen=0;
for(;c>0;c--)
{
if(dlen+1>=capacity)
{
capacity*=2;
data=(ptint)realloc(data,capacity);
}
scanf("%d",data+dlen++);
}
scanf("%d",&c);
//直接调用库函数qsort进行快速排序,就不自己写快速排序算法函数了
qsort(data,dlen,IntSize,lessthan);
if(c<=dlen)
{
(*(result+rlen)).v=*(data+c-1);
(*(result+rlen)).bl=1;
}
rlen++;
}
for(n=0;n<rlen;n++)
{
if(1==(*(result+n)).bl)
printf("Case #%d:%d\n",n+1,(*(result+n)).v);
else
printf("Case #%d:-1\n",n+1);
}
free(data);
free(result);
return 0;
}

3. C语言一维数组中如何查找指定元素

1、打开pycharm,新建Test_List.py,如图所示。

4. C语言 用指针编写在数组中查找指定值指针的函数

不用万分感谢,只要十分感谢即可。
对于函数:int* find(int a[], int value),其中a为整型数组首地址,value是被检验值。我们可以利用指针a间接引用数组第一个元素的值,并将其与value比较,比较完后,将指针向后移动,再通过间接引用的方式比较下一个元素值,依次下去,直到在整型数组中找到被检验值或者整型数组所有元素比较结束为止。
那么这里有个问题,我们如何通过指针知到整型数组什么时候结束呢?对于整型数组而言,没有办法,所以我们必须先知道整型数组的长度,可以在参数中给出,也可以在主函数定义中知晓。
程序如下:
int* find(int a[], int value)
{
int i=0,*p=a;
for(i=0;i<=9;i++)
{
if(*p==value)
return p;
else
p++;
}
if(i>=10)
return 0;
}
main()
{
int c[10]={1,2,3,4,5,6,7,8,9,0};
int n;
scanf("%d",&n);
printf("%x %d",find(c,n),*(find(c,n)));/*第一个为函数返回地址,第二个为函数返回地址里的值*/
getch();
}
另外,我们测试一个程序或者函数是否正确不在于其能否正确运行,而在于其运行的结果是否符合我们的预期。针对上述程序,测试方法如下:
输入任意一个数,如果这个数在数组C内,看是否能够打印出16进制的地址数和与输入值相同的数;如果不在数组C内,看是否返回值为0的地址。

5. C语言题目:在数组中查找指定元素

#include <stdio.h>

#define MAXN 10

int search( int list[], int n, int x );

int main()

{

int i, index, n, x;

int a[MAXN];

printf("输入个数: ");

scanf("%d",&n);

for( i = 0; i < n; i++ )

scanf("%d", &a[i]);

printf("输入x: ");

scanf("%d", &x);

index = search( a, n, x );

if( index != -1 )

printf("index = %d ", index);

else

printf("Not found ");

return 0;

}

int search( int list[], int n, int x ){

int i;

for(i=0;i<n;i++){

if(x==list[i])

return i;

}

return -1;

}

(5)c语言中的数组查找函数扩展阅读:

数组使用规则:

1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。

2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1;请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。

3.如不给可初始化的数组赋初值,则全部元素均为0值。

4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5};可写为:static int a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。

网络-数组

6. C语言题要求实现一个在数组中查找指定元素的简单函数。(找错误)

改错参考如下:
int search(int list[],int n,int x)
{
int i,index=-1;
for(i=0;i<n;i++)
if(list[i]==x){//注意是==
index=i;//既然都明白下标从0开始,有必要+1吗?
break;
}
return index;//不返回值行吗?
}

7. 如何用c语言编写查询数组中的元素

对于数组的查询,其实就是对数组中数据做一个遍历。

最常用的方法就是通过循环对数组中的元素逐个取值,并与参考值(要查询的值)做比对,并处理结果。

下面是一个简单的对一维数组进行查询的样例。

函数功能:对输入的数组元素进行查询,打印符合查询值的元素位置,并返回查询到的元素总数。

函数名:array_query

函数声明: int array_query(int *a, int n, int v);

参数介绍:

a: 输入的数组,类型为整型指针,表示整型数组。可以根据实际需要进行调整。

n:数组中现有元素的个数。

v:要查询的元素值。

返回值:

整型,返回查询到的元素个数。如果出错返回-1。

实现代码:

intarray_query(int*a,intn,intv)
{
inti,ret;

if(a==NULL||n<=0)return-1;//出错处理
for(ret=i=0;i<n;i++)
{
if(a[i]==n)
{
printf("%d ",i);//找到元素,打印下标,并累计统计值
ret++;
}
}

returnret;//返回总数。
}

8. C语言实现整型数组中查找指定元素的函数

#include<stdio.h>
int search(int a[], int n, int searchValue) {
int i;
for(i=0; i<n; i++) if(a[i]==searchValue) return i;
return -1;
}
int main() {
int i;
int a[10],find,idx;
for(i=0; i<10; i++) {
printf("Input a[%d]:",i);
scanf("%d",&a[i]);
}
printf("Input searchValue:");
scanf("%d",&find);
idx=search(a,10,find);
if(idx!=-1) printf("pos=%d",idx);
else printf("not found");
}

9. 如何用c语言的数组,来进行文字的查找

C语言中的标准函数库中的strchr()函数可以实现查找字符串中的某个字符。头文件: #include <string.h>函数原型:char *strchr(const char *s, int c);函数说明:从左向右,在字符串s中查找字符c首次出现的位置,如果找到返回c在s中的位置(指针),否则返回NULL例:<pre t="code" l="cpp">#include <stdio.h>
#include <string.h>
void main()
{
char str[]="hello world";
char *p=strchr(str, 'w');
if ( p )
printf("find 'w'!);
else
printf("not found!");
}相关函数:char *strrchr(const char *s, int c); 从右向左,查找s中最右边的匹配字符位置char *strstr(const char *s, const char *sub); //在s中查找sub子串出现的位置