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

我有几点问题要问,求解

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

}

1  为什么用void类型,arr[index] = value这个不是返回值吗,还是只是执行代码块?

2  if(arr[i]>max)怎么判断的,arr[1]>arr[0]?if里面是怎么运算的?举个清晰的数字代入运算过程。谢谢!!

正在回答

2 回答

replaceMax函数括号中输入两个值,第一个值对应arr[],第二个对应alue,你括号中第一个的值是arr1,那arr[]的值当然就是等于arr1的咯

你这个找出arr1[]中的最大值赋值给max有用吗,最后就吧arr1[]中的数都打印了一遍

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

void就是没有返回值,这个程序不需要返回值,arr[index] = value是返回值?返回值是用return返回的,这个是赋值

2.这是判断数组的第i个值大不大于max

运算?这就是比较大小啊,你再把数组那章好好看下吧



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

lolipop漫 提问者

arr[i]>max,前面int max=arr[0],这个我不懂。举个例子,当i=1,是不是判断arr[1]>max,max=arr[0],这个arr[0]是什么值,是arr1里面的10还是arr2[]里的1?当确定arr[1]=41>max,然后赋值给max,输出标记i,然后再继续判断i=2时,arr[2]是否大于>max,此时max的值是arr[1]=41,比他小,不成立,不输出任何i,直到结束,最后完成arr[index] = value;输出下标,完成替换。
2015-07-21 回复 有任何疑惑可以回复我~
#2

lolipop漫 提问者

这里我看了下,arr1传入函数,那么就是用arr1里元素。然后判断上面那个值最大,完成替换。
2015-07-21 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

我有几点问题要问,求解

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