【发布时间】:2015-03-14 19:00:59
【问题描述】:
int akki(int arr[],int m,int n){
int i;
for(i=0;i<m;i++){
if(arr[i]==n)
return i;
}
return 20;
}
void main(){
int i,m,n,arr[10],a;
printf("Enter size of array:");
scanf("%d",&m);
printf("Enter %d elements of array:",m);
for(i=0;i<m;i++){
scanf("%d",arr[i]);
}
printf("Enter element to be searched:");
scanf("%d",&n);
a=akki(arr,m,n);
if(a!=20)
printf("Element found at %d position",a+1);
else
printf("Element not found");
} 它正在返回 20 或一些垃圾值..即使条件匹配......它正在返回 i 的值。它是线性搜索函数,其中 m 是数组 arr 的大小,n 是要搜索的元素...... 请详细解释..我是c语言新手
提前谢谢你
【问题讨论】:
-
你的函数是
return 20;,当它从未找到元素时会发生这种情况 -
即使条件匹配(arr[i]==n)..它返回 20
-
@Akshay ,不。除非
i是20,否则不会。 -
@Akshay 当我是 20 岁 时条件会为真
-
akki似乎还可以。问题一定出在调用代码中。请给我们看一个完整的例子。
标签: c return linear-search