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

作者&投稿:酆杰 (若有异议请与网页底部的电邮联系)
C语言用指针在数组中查找特定值~

#include
int find(int *p,int n,int b)
{
int i=0;
while(i<n)
{
if(*p++==b)
return i;
i++;
}
return -1;
}

int main()
{
int k;
int a[]={1,2,3,4,5};
int b;
printf("输入要查找的数:");
scanf("%d",&b);
k=find(a,sizeof(a),b);
if(k==-1){
printf("数组中没有这样的值
");
}else{
printf("下标=%d
",k);
}
return 0;
}

调试程序的时候我输入了一些输出语句,后面跟有/* */的,你用的时候删掉就可以了。
记得采纳最佳答案!

#include "stdafx.h"

#include
int main(void)
{
int i, index, n, res, x;
int repeat, ri;
int a[10];

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

printf("输入重复次数:
"); /* */
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){ //repeat是重复程序次数
printf("重复次数为%d,输入数组元素个数:",repeat); /* */
scanf("%d", &n); //n是数组元素个数
printf("数组元素个数为:%d
请顺序输入数组元素
",n); /* */
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
printf("请输入要查找的数
"); /* */
scanf("%d", &x); //x是要查找的数
printf("要查找的数为:%d
",x); /* */
/*---------*/
res=search(a,n,x);
if(res != -1) //res的值就是search函数的返回值
printf("index = %d
", res);
else
printf("Not found
");
}
return 1; /* */
}

int search(int list[], int n, int x){
int q=-1;
for(int i=0;i<n;i++)
if(list[i]==x) {q=i;break;}
return q;
}

不用万分感谢,只要十分感谢即可。
对于函数: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的地址。

不用万分感谢,只要十分感谢即可。
对于函数: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的地址。

对于函数: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的地址。

参数太少了. 还得加一个数组长度才行.


忻府区19286194484: C语言用指针在数组中查找特定值 -
庄纪帮君: #include<stdio.h> int find(int *p,int n,int b) { int i=0;while(i<n){ if(*p++==b)return i;i++;}return -1; }int main() {int k;int a[]={1,2,3,4,5};int b;printf("输入要查找的数:");scanf("%d",&b);k=find(a,sizeof(a),b);if(k==-1){printf("数组中没有这样的值\n");}else{printf("下标=%d\n",k);}return 0; }

忻府区19286194484: C语言 用指针编写在数组中查找指定值指针的函数 -
庄纪帮君: 对于函数:int* find(int a[], int value),其中a为整型数组首地址,value是被检验值.我们可以利用指针a间接引用数组第一个元素的值,并将其与value比较,比较完后,将指针向后移动,再通过间接引用的方式比较下一个元素值,依次下去,直到...

忻府区19286194484: 在数组中查找指定元素指针与数组C语言 -
庄纪帮君: 调试程序的时候我输入了一些输出语句,后面跟有/* */的,你用的时候删掉就可以了. 记得采纳最佳答案!#include "stdafx.h"#include <stdio.h> int main(void) {int i, index, n, res, x;int repeat, ri;int a[10]; int search(int list[], int n, int x); ...

忻府区19286194484: 用指针编写在数组中查找指定值的函数:找到返回元素下标,否则返回 - 1.然后编写主函数测试该函数 -
庄纪帮君: #include<stdio.h> #include<stdlib.h> #include<time.h> #define random(x) (rand()%x) int findEle(int *pa, int n) {for(int i=0;i<10;i++){if(pa[i] == n)//找到return i;}return -1;//没找到 } void output(int data,int key) {if(key == -1)printf("%d元素没找...

忻府区19286194484: C语言 编写程序,在一个整型数组中查找某个数并将其删除.(要求用指针) -
庄纪帮君: #include #include int main() { int i,*p,a[5]={1,2,3,4,5}; p=&a[0]; int num,count; printf("请输入要删除的数字\n"); scanf("%d",&num); for(i=0;i<5;i++) { if(*p++==num) { count=i; } } p=&a[0]; for(i=count;i<4;i++) { *(p+i)=*(p+i+1); *(p+i+1)=null; } p=&a[0]; for(i=0;i<5;i++) { if(a[i]!=0) { printf("%d\n",*p++); } } }

忻府区19286194484: <用c语言>写一通用函数,从一个字符指针数组中寻找指定的一个字符串,若找到返回1,找不到返回0 -
庄纪帮君: #include "stdafx.h"#include <stdio.h>#include <string.h> int str2str(const char *str, const char *sub) { if (!str || !sub) return 0; int i, j = 0, ret = 0; int l1 = strlen(str), l2 = strlen(sub); for (i = 0; i < l1; ++i) { if(str[i] == sub[j]) { ++j; } else j = 0;if (j == l2) { ret = ...

忻府区19286194484: C语言 - 通用函数 - 字符指针数组寻找指定字符串 -
庄纪帮君: #include "stdafx.h"#include #include int str2str(const char *str, const char *sub) { if (!str || !sub) return 0; int i, j = 0, ret = 0; int l1 = strlen(str), l2 = strlen(sub); for (i = 0; i < l1; ++i) { if(str[i] == sub[j]) { ++j; } else j = 0; if (j == l2) { ret = 1; break; } } return ...

忻府区19286194484: C语言 指针搜索数组里的数 -
庄纪帮君: 12345678910111213 intmy_max = -INT_MAX; intrnd = 0;//第一步取得2113数组5261里最大数 for(i = 0; i < sizeof(arr), ++i) { if(arr[i] > my_max) my_max = arr[i]; } //第二4102步生成随机数 srand(time()); rnd = (int)(my_max * ((double)rand() / RAND...

忻府区19286194484: C语言 - 通用函数 - 字符指针数组寻找指定字符串
庄纪帮君: #includenbsp;“stdafx.h“#includenbsp;amp;lt;stdio.hamp;gt;#includenbsp;amp;lt;string.hamp;gt;intnbsp;str2str(constnbsp;charnbsp;*str,nbsp;constnbsp;charnbsp;*sub){nbsp;ifnbsp;(!strnbsp;||nbsp;!sub)nbsp;nbsp;returnnbsp;0;nbsp;nbsp;intnbsp;...

忻府区19286194484: C语言中怎么实现在指针数组s中找包含指针p指向的某个指定字符串的第一个字符串 -
庄纪帮君: const char * find(const cha...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网