我有几点问题要问,求解

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

lolipop漫

2015-07-20 22:56

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

  • 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

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



    lolipo...

    这里我看了下,arr1传入函数,那么就是用arr1里元素。然后判断上面那个值最大,完成替换。

    2015-07-21 14:55:06

    共 2 条回复 >

C语言入门

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

926212 学习 · 20797 问题

查看课程

相似问题