任意输入其中一个数查找代码如下:
宁德网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。成都创新互联公司2013年至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司。
#includestdio.h
int main()
{
int a[10]={20,40,50,70,80,10,15,25,45,100};
int i,b,c;
char t,y,n;
do{
printf("请输入20,40,50,70,80,10,15,25,45,100十个数中任意一个:\n");
scanf("%d",b);
printf("b=%d\n",b);
for(i=0;i=9;i++)
{
if(a[i]==b)
c=i+1;
}
printf("第%d位数\n",c);
printf("是否继续y/n:");
fflush(stdin);
scanf("%c",t);
}while(t == 'y');
return 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的地址。
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;
}
先排序:按照大小顺序排列好。
再查找:把数组从头到尾遍历,当找到符合的数字,返回数组下标,否则返回-1。
如果遇到数列中含有多个X的时候,可以修改函数。改为:当找到符合的数字时,X的个数+1,并储存位置,遍历完数组后,返回X的个数和位置;如果X的个数为0,则返回-1。
int main(void)
{
int aiNum[10] = {1,23,34,22,33,44,55,31,24,90};
int i;
int number;
printf("input NUMBER");
scanf("%d",number);
for(i=0;i10;i++)
{
if(number == a[i])
break;
}
if(i9)
{
printf("NOT FOUND NUMBER\n");
}
else
{
printf("LOCATION:[%d]\n",i);
}
return(0);
}
你这个哪里是指定字符出现的位置?明明就是指定字符串出现的位置。
首先先判断第二个字符串的长度
然后在第一个字符串里面循环截取长度为第二个字符串长度的字符串,存到临时字符串里。
比较临时字符串和第二个字符串是否相同,相同则记录找到次数并记录位置,不相同则继续循环。
如此即可。