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

我的代码问题

我的代码是这样写的,value值在数组范围内是么有问题的,可是我输入的值超出了数组范围后,在编译器打印的结果却显示在“10在数组中存在,下标为35”,而且无论我的value值是多少(数组外),都是下标为35。这是为什么?

#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 index;
}

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

正在回答

1 回答

#include <stdio.h>

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

{

    int i;

    int index=-1;//改动的 

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

    {

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

       if(arr[i]==value)

       {

           return i;

     


       }

      

    }

    return index;

}


int main()

{

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

    int value = 10;

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

    if(index!=-1)

    {

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

    }

    else

    {

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

    }

    return 0;    

}


这是我改动了的代码 就是给index赋值为-1我注释了 改动  你自己找找

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

举报

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

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

进入课程

我的代码问题

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