gpt4 book ai didi

c - c 中的 return 语句???为什么这个函数总是返回20?

转载 作者:行者123 更新时间:2023-11-30 21:47:37 25 4
gpt4 key购买 nike

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语言新手

提前谢谢zzz

最佳答案

您的代码有问题。改变

scanf("%d",arr[i]);

scanf("%d",&arr[i]);

这样做是因为 scanf 需要一个 int* 类型的参数,但您提供的 arr[i] 类型为 >int。还添加一个检查,如果用户在第一个 scanf 中输入的数字大于 10,则结束程序。

关于c - c 中的 return 语句???为什么这个函数总是返回20?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27979461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com