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

我有几点问题要问,求解

#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里面是怎么运算的?举个清晰的数字代入运算过程。谢谢!!

提问者:lolipop漫 2015-07-20 22:56

个回答

  • kkkbbb
    2015-07-21 19:11:34

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

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

  • kkkbbb
    2015-07-21 08:09:02

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

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

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