新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
对于数组的查询,其实就是对数组中数据做一个遍历。
创新互联建站专业为企业提供齐河网站建设、齐河做网站、齐河网站设计、齐河网站制作等企业网站建设、网页设计与制作、齐河企业网站模板建站服务,十多年齐河做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
最常用的方法就是通过循环对数组中的元素逐个取值,并与参考值(要查询的值)做比对,并处理结果。
下面是一个简单的对一维数组进行查询的样例。
函数功能:对输入的数组元素进行查询,打印符合查询值的元素位置,并返回查询到的元素总数。
函数名:array_query
函数声明: int array_query(int *a, int n, int v);
参数介绍:
a: 输入的数组,类型为整型指针,表示整型数组。可以根据实际需要进行调整。
n:数组中现有元素的个数。
v:要查询的元素值。
返回值:
整型,返回查询到的元素个数。如果出错返回-1。
实现代码:
int array_query(int *a, int n, int v)
{
int i,ret;
if(a == NULL || n = 0) return -1; //出错处理
for(ret = i = 0; i n; i ++)
{
if(a[i] == n)
{
printf("%d\n", i);//找到元素,打印下标,并累计统计值
ret ++;
}
}
return ret;//返回总数。
}
#includestdio.h
int search(int a[], int n, int searchValue) {
int i;
for(i=0; in; i++) if(a[i]==searchValue) return i;
return -1;
}
int main() {
int i;
int a[10],find,idx;
for(i=0; i10; 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");
}
首先,指针默认只有一个地址的长度的空间,存不了那么多的字符。
其次,传值和传地址一塌糊涂,完全就是乱写么。
scanf的第二个参数是地址,如果本身不是指针则需要取址符。
我给你重写了算了
#include
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);
/*申请一个内存空间用来存放数据,或者直接用一个大数组也可以*/