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

万一数组中不止一个8呢?是不是遍历不完整?

#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 = 8;

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

    if(index!=-1)

    {

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

    }

    else

    {

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

    }

    return 0;    

}


正在回答

3 回答

要想让所有的8都找到,最简单的方法是把if语句改为每找到一个8就进行一次printf,然后去掉break和主程序中相关的部分,就能遍历数组找到所有的8并打印。

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

这是个比较简单的查询匹配逻辑,返回的是第一个匹配项的数组下标值,如果将break注解,而且数组中有多个等于8的值,返回的将是最后一个匹配到的数组下标值。

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

可在函数内可以用一个数组存放全部的等于8的下标,循环不用break,用全局变量记录个数,完了传回数组的指针就可以了,在主函数中遍历所有传回的数组

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

举报

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

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

进入课程

万一数组中不止一个8呢?是不是遍历不完整?

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