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

更加完整的解决方案,教程里的不够完整。


//教程里的解决方案不够完整,当数组中与value的值相等的元素存在多个时,程序总是会输出其中的第一个元素的下标,其后仍有与value相同的值则直接跳过,不会输出。


#include <stdio.h>

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

{

    int i;

    int temp=0;      //用来承载第二个for循环中arr[i] != value的判断次数。

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

    {

        if(arr[i]==value)

        {

            printf("存在,下标为");

            break;      //当arr[i] == value的结果时,证明value的值能在arr数组中找到,立即退出循环。

        }

    }

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

    {

        if(arr[i]==value)

        {

            printf(" ··· %d",i);      //输出当arr[i] == value时i的数字。即arr数组中的某个元素等于value时,该元素的下标。

        }

        else

        {

            temp++;      //累加arr[i] != value的判断次数。当temp==arr数组的总长度时,代表arr数组中没有一个元素==value,即value在arr数组中不存在。

        }


    }

    if(temp==5)

    {

        printf("不存在。\n");

    }

    else

    {

        printf("。");

    }

}

int main()

{

    int arr[5]={3,12,9,8,6};      //可更改此数组的元素,观察运行结果有没有错误,即使相同的元素也能正确输出结果。

    int value=8;                  //可更改此数组的元素,观察运行结果有没有错误。

    printf("%d在数组中",value);

    getIndex(arr,value);      //传递arr[]以及value的参数。

    return 0;    

}


正在回答

举报

0/150
提交
取消

更加完整的解决方案,教程里的不够完整。

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