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

我的答案为什么不对?

#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 回答

你的函数写错了。因为你这个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;

}


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

qq_就此别过_0 提问者

恩恩,太感谢你啦!
2015-07-28 回复 有任何疑惑可以回复我~
#2

紫泉 回复 qq_就此别过_0 提问者

不用,日后努力学习便是对我的最大感谢。
2015-07-28 回复 有任何疑惑可以回复我~

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

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

qq_就此别过_0 提问者

就是把下面arr2[1]与arr1的最大值互换一下。 这个不需要 return max 呀
2015-07-28 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

我的答案为什么不对?

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