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

这是为什么?

为什么要在

 if(arr[i]==value)

         {

             index=i;

             break;

中加入break?

正在回答

2 回答

if只是一个条件判断后施行命令,不跳出循环会继续对index不断赋值

一直到数组最后值是6,得到判断index=-1;

可以看出这个代码也只能判断数组第一次出现该值的坐标,如果数组包含多个相同的数值就没办法读取多个坐标

如果去掉break;将index判断放到getIndex函数内可以把每个情况读取出来

#include <stdio.h>
int getIndex(int arr[5],int value)
{
    int i;
    int index;
    for(i=0;i<5;i++)
    {
       /* 请完善数组查询功能 */
       if(arr[i]==value)       
        {
            index=i;
           // break;
           printf("%d在数组中存在,下标为:%d\n",value,index);
        }else
        {
            
            printf("%d在数组中不存在。\n",value);
        }
    }
    return index;
}

int main()
{
    int arr[5]={3,8,9,8,8};
    int value = 8;
    getIndex(arr , value);      //这里应该传什么参数呢?
   /*   if(index!=-1)
  {
        printf("%d在数组中存在,下标为:%d\n",value,index);             
    }
    else
    {
        printf("%d在数组中不存在。\n",value);    
    }*/
    return 0;    
}

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

因为当你判断arr[i]==value后你需要跳出这个循环。

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

举报

0/150
提交
取消
C语言入门
  • 参与学习       926028    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

这是为什么?

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