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

结果怎么出来的,为什么是10

结果怎么出来的,为什么是10,,,,能不能对其中的一个结果的由来举个例子

正在回答

2 回答

#include <stdio.h>

void replaceMax(int arr[],int value)

{

    int max = arr[0];     /*max=10*/

    int index = 0;

    int i;

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

    {

        if(arr[i]>max)  /*41>10? ,3>41? , 12>41? , 22>41?*/

        {

             max=arr[i];    //将数组中较大的数赋值给max,   max=41

            index = i;  //记录当前索引,   index=1

        }                

    }  

    arr[index] = value;   /*arr[1]=1,将1赋值给arr[1]*/

}


int main()

{

    int arr1[] = {10,41,3,12,22};

    int arr2[] = {1,2,3,4,5};

    int i;

    replaceMax(arr1 ,arr2[0] ); //将数组arr1和数组arr2的第一个元素传入函数中

    for(i=0;i<5;i++)            /*将数组arr1[i]输出,其中arr[1]被替换,arr[1]=10*/

    {

        printf("%d ",arr1[i]);                

    }

    return 0;    

}


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

#include <stdio.h>

void replaceMax(int arr[],int value)

{

    int max = arr[0];

    int index = 0;

    int i;

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

    {

        if(arr[i]>max)

        {

            max = arr[i];        //将数组中较大的数赋值给max

            index = i;  //记录当前索引

        }                

    }  

    arr[index] = value;

}

int main()

{

    int arr1[] = {10,41,3,12,22};

    int arr2[] = {1,2,3,4,5};

    int i;

    replaceMax(arr1, arr2[0]); //将数组arr1和数组arr2的第一个元素传入函数中

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

    {

        printf("%d ",arr1[i]);                

    }

    return 0;    

}

因为arr1[]中最大值是arr[1] = 41,所以max = arr[1]; 但是最后又将arr2[0] = 1,即是value的值赋给了arr[1].    arr[index] = value;  所以最终输出结果为10 , 1, 3, 12 ,22.相当于将arr1[]数组中的最大数换成了arr2[0],然后再将arr1[]输出。希望能够帮助到你。

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

missyou012 提问者

这个结果到底是求什么的啊?最大值吗?虽然你讲的很仔细,但结果我还是不太明白。。。
2016-07-08 回复 有任何疑惑可以回复我~
#2

酸甜果汁分你一半 回复 missyou012 提问者

就是将数组1中的最大值换成数组2中元素1的值,然后将数组1的各元素输出
2016-07-13 回复 有任何疑惑可以回复我~
#3

qq_淡末初夏_03336219 回复 酸甜果汁分你一半

请问为什么替换arr1[]的值之后无需返回值就可以影响main的输出呢
2016-08-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

结果怎么出来的,为什么是10

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