为了账号安全,请及时绑定邮箱和手机立即绑定

为啥按照例题的写也可以输出正确,我没法理解为啥例题和我下面的这个不用break 会输出正确。

#include <stdio.h>

int getIndex(int arr[5],int value)

{

    int i;

    int index;

    for(i=0;i<5;i++)

    {

       /* 请完善数组查询功能 */

       if(arr[i]==value)

          {return i;

         

          }

    

        

    }

         return -1;

}



int main()

{

    int arr[5]={3,12,9,8,6};

    int value = 8;

    int index = getIndex(arr , value);      //这里应该传什么参数呢?

    if(index!=-1)

    {

        printf("%d在数组中存在,下标为:%d\n",value,index);             

    }

    else

    {

        printf("%d在数组中不存在。\n",value);    

    }

    return 0;    

}


正在回答

3 回答

例题只是没有用index变量,直接用i;而用不用break,只是影响循环执行的次数,并不影响最终结果

0 回复 有任何疑惑可以回复我~
#1

坚持下去灬 提问者

用了index 变量为啥就要break了 不用index 那不是还会继续循环吗啊? 最后输出-1 才停止循环 ,这就再把retrun的 -1 赋值给 main 里面的index
2019-09-12 回复 有任何疑惑可以回复我~

你这等于没用index这个声明的变量,直接传值。

0 回复 有任何疑惑可以回复我~
#1

坚持下去灬 提问者

没有设置index 直接传值 循环会结束吗? 如果不会结束的话 继续循环 最后不就变成arr[i]!==value return -1了
2019-09-12 回复 有任何疑惑可以回复我~
#2

小小疾飞 回复 坚持下去灬 提问者

return出来的效果是一样的 比如我想return 10 也可以int a=10 再return a
2019-09-12 回复 有任何疑惑可以回复我~
#3

坚持下去灬 提问者 回复 小小疾飞

我不理解的是 为什么答案需要break 而把break 去掉就报错
2019-09-19 回复 有任何疑惑可以回复我~
#4

小小疾飞 回复 坚持下去灬 提问者

这个网站又标准答案的,结果正确和标准答案不一样也是错,但实际上是对的,无伤大雅。
2019-09-19 回复 有任何疑惑可以回复我~
查看1条回复

你这不是一回事吗。。。。。

0 回复 有任何疑惑可以回复我~
#1

坚持下去灬 提问者

哎 我的理解能力太差了。 为啥你们学起来这么容易
2019-09-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为啥按照例题的写也可以输出正确,我没法理解为啥例题和我下面的这个不用break 会输出正确。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信