问答详情
源自:6-4 数组作为函数参数

我的答案为什么不对?

#include "stdio.h"

int  replacemax(int arr[],int value)

{

    int max, i;

    max=arr[0];

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

{

if(max<arr[i])

      max=arr[i];

 

}

max=value;


}

int main()

{   

int i;

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

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

replacemax(arr1,arr2[0]);

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

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

return 0;

}


提问者:qq_就此别过_0 2015-07-28 17:43

个回答

  • 紫泉
    2015-07-28 18:15:43
    已采纳

    你的函数写错了。因为你这个max是一个临时变量,你只是把value的值给max,而max却无法把值传给相应的数组的位置,可以这样改。

    #include "stdio.h"

    void  replacemax(int arr[],int value)

    {

        int max, i,pos;  //pos为最大值所在数组的下标

        max=arr[0];

        pos = 0;

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

        {

            if(max<arr[i])

            {

                max=arr[i];

                pos = i;

            }



        }

        arr[pos]=value;


    }

    int main()

    {

        int i;

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

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

        replacemax(arr1,arr2[0]);

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

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

        return 0;

    }


  • 紫泉
    2015-07-28 17:52:35

    你的replacemax是什么意思。另外你怎么没有 return max,