c语言收索数组中存在的数

c语言收索数组中存在的数

如果存在就输出这个数的索引

如果不存在就输出“这个数不存在

#include <stdio.h>
int search(int key,int a[],int length);
int main(viod)
{
	int a[]={2,4,6,7,1,3,5,9,11,13,23,14,32};
	int x;
	int loc;
	printf("请输入一个数字:");
	scanf("%d",&x);
	loc=search(x,a,sizeof(a)/sizeof(a[0]));
	if(loc!=-1){
		printf("%d在%d个位置上\n",x,loc);
		//TODO
	}else{
		printf("%d不存在\n",x);
	}
	return 0;
}
int search(int key,int a[],int length)
{
	int ret=-1;
	int i;
	for(i=0;i<length;i++){
		if(a[i]==key){
			ret=i;
			break;
			//TODO
		}
		//TODO
	}
	return ret;
}

c
78 views
Comments
登录后评论
Sign In
·

几个

·

如果我的数组是[2, 2, 3, 3, 4, 4],那么我在搜索3的时候只会返回第一个哦?

我认为search里的ret变量应该改为一个数组,新创建一个flag变量用来判断待搜索的数是否在数组中存在比较好,这样子可以返回数组中所有待搜索数的下标而不只是第一个数