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

为什么输入不在数组中的数字也能通过if(arr[i]==value)

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

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

正在回答

1 回答

这个应该是设计题目的时候没改回来的一个bug。看主函数里面输出不存在提示语的情况是返回值index!=-1,但是在子函数里面并没有定义index的值,也就是说我们不知道index是什么值,对于不在数组内的数字确实是没有通过if语句,但是由于不通过if语句,函数的返回值依然不是-1,所以最后给出的提示就是存在。(第一次给人讲代码耶,我说明白了吗?)

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

伪面君子4627072

在子函数里面把int index;改成int index=-1;就可以啦,一般上对于没有初始化过的变量,系统会随机给出一个数的。
2021-01-09 回复 有任何疑惑可以回复我~
#2

weixin_慕设计3536944 回复 伪面君子4627072

为什么要跳出循环,如果在数组中有几个要找的数怎么办
2021-09-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么输入不在数组中的数字也能通过if(arr[i]==value)

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