求解找出某元素并输出下标

搬砖道人张三丰 2016-07-26 12:32:31
为什么没有得到预期结果??请大神解答
#include <stdio.h>
int getIndex(int arr,int value)
{

if(arr==value)
return 1;

}

int main()
{
int arr[5]={3,8,9,8,6};
int value = 8,i,index=0;
for(i=0;i<5;i++)
index = getIndex(arr[i],value);
if(index!=0)
printf("%d在数组中存在,下标为:",value);
else
printf("%d在数组中不存在。\n",value);
for(i=0;i<5;i++)
{
index=0;
index=getIndex(arr[i],value);
if(index!=0)
printf("%d ",i);
}
return 0;
}
...全文
448 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
penghuahuijuan 2016-08-01
  • 打赏
  • 举报
回复
getindex没有返回语句,应该加上return 0
paschen 2016-07-27
  • 打赏
  • 举报
回复
引用 5 楼 weixin_35688685 的回复:
[quote=引用 1 楼 paschen 的回复:] getIndex最后加上return 0;,否则返回的是当前EAX寄存器的值

int getIndex(int arr,int value)
{

	if(arr==value)       
		return 1;
	return 0;
}
那这样如果arr等于value的时候不会返回1又返回0吗??[/quote] 都返回了就不会再执行后面的代码了
小灸舞 2016-07-27
  • 打赏
  • 举报
回复
引用 5楼我是你的主体 的回复:
[quote=引用 1 楼 paschen 的回复:] getIndex最后加上return 0;,否则返回的是当前EAX寄存器的值

int getIndex(int arr,int value)
{

	if(arr==value)       
		return 1;
	return 0;
}
那这样如果arr等于value的时候不会返回1又返回0吗??[/quote]当然不会,return以后就不会再执行之后的代码了
小灸舞 2016-07-26
  • 打赏
  • 举报
回复
这种代码有的编译器过不了编译。
如果iarr不等于value,就没有return值了, index变量接收到的返回值是寄存器里面的值
wang0635 2016-07-26
  • 打赏
  • 举报
回复
编译器应该有提示的,比如: warning: control reaches end of non-void function 如果没有,就换一个好的、现在人用的环境
paschen 2016-07-26
  • 打赏
  • 举报
回复
getIndex最后加上return 0;,否则返回的是当前EAX寄存器的值

int getIndex(int arr,int value)
{

	if(arr==value)       
		return 1;
	return 0;
}
  • 打赏
  • 举报
回复
引用 1 楼 paschen 的回复:
getIndex最后加上return 0;,否则返回的是当前EAX寄存器的值

int getIndex(int arr,int value)
{

	if(arr==value)       
		return 1;
	return 0;
}
那这样如果arr等于value的时候不会返回1又返回0吗??
penghuahuijuan2 2016-07-26
  • 打赏
  • 举报
回复
int getIndex(int arr,int value) { if(arr==value) return 1; }没有返回值啊!

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧