我的答案为什么不对?

来源:6-4 数组作为函数参数

qq_就此别过_0

2015-07-28 17:43

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

}


写回答 关注

2回答

  • 紫泉
    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;

    }


    紫泉 回复qq_就此别...

    不用,日后努力学习便是对我的最大感谢。

    2015-07-28 18:20:41

    共 2 条回复 >

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

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

    qq_就此别...

    就是把下面arr2[1]与arr1的最大值互换一下。 这个不需要 return max 呀

    2015-07-28 17:56:04

    共 1 条回复 >

C语言入门

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

926206 学习 · 20797 问题

查看课程

相似问题