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

c中的返回语句???为什么这个函数总是返回20?,c,return,linear-search,C,Return,Linear Search,} 它正在返回20或一些垃圾值..即使条件匹配。。。它是i的返回值。它是线性搜索函数,其中m是数组arr的大小,n是要搜索的元素。。。 请详细解释。我是c语言新手 提前感谢有两个原因 案例1[非常可能为u始终uu] 简单。因为您的ifarr[i]==n条件不满足,并且i您的代码中有一个问题。改变 scanf("%d",&arr[i]); 到 之所以这样做,是因为scanf需要int*类型的参数,但您提供int类型的参数arr[i]。此外,如果用户在第一次扫描时输入的数字大于10,则添加

} 它正在返回20或一些垃圾值..即使条件匹配。。。它是i的返回值。它是线性搜索函数,其中m是数组arr的大小,n是要搜索的元素。。。 请详细解释。我是c语言新手


提前感谢有两个原因

案例1[非常可能为u始终uu]


简单。因为您的ifarr[i]==n条件不满足,并且i您的代码中有一个问题。改变

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


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

您的函数确实返回20,即使条件与sarr[i]==n匹配,当它从未找到元素时也会发生这种情况。它正在返回20@Akshay,不。除非我20岁,否则不会。@Akshay当我20岁时,这种情况应该是真的。Akki看起来还可以。问题一定出在调用代码中。请给我们一个完整的例子。即使条件与sarr[i]==n匹配,它也会返回20@Akshay那么,对于指数20,arr[i]等于n。这是您可以返回20的另一个条件。您是否检查了n不是20?是。。我已经检查过了。我只取了数组中的2个元素。但它仍然返回20个或一些垃圾。嗯,您缺少一个条件。你说这是因为ifarr[i]==n从未见过,但它是可以遇到的。非常感谢。。现在我的代码工作正常了。。。但是当我把字符串作为输入时,我有一个疑问。我们在scanf中不使用&为什么???如果你为你的char[]提供一个索引,你将需要一个&。字符缓冲区[80];扫描%s,缓冲区;/*与*/scanf%s和缓冲区[0]相同@Akshay,请记住数组的名称会衰减为指向其第一个元素的指针。所以,正如KlasLindback所评论的,缓冲区等于&buffer[0]明白了,先生。。谢谢你宝贵的回答。你能通过facebook与我联系吗。请我需要你的帮助。我在c和java方面有很多问题。。我的身份证是akshay。akky786@gmail.com .. 请通过facebook与我联系..谢谢again@Akshay不。我有时只登录FB。如果您面临问题,只需在StackOverflow中发布即可。如果不太长,一定要发布准确的代码和完整的代码以及问题和/或错误消息。一定要发布一个问题,标题应该为你面临的问题提供提示。
scanf("%d",&arr[i]);
scanf("%d",arr[i]);
scanf("%d",&arr[i]);