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

来源:6-6 数组的应用(二)

qq_慕盖茨8022849

2021-01-08 16:46

#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回答

  • 伪面君子4627072
    2021-01-09 02:16:22

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

    weixin... 回复伪面君子46...

    为什么要跳出循环,如果在数组中有几个要找的数怎么办

    2021-09-27 20:35:41

    共 2 条回复 >

C语言入门

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

926020 学习 · 20793 问题

查看课程

相似问题