编写函数计算一维实型数组前n个元素的最大值、最小值和平均值。数组、n、最大值、最小值和平均值均作为函数形参,函数无返回值;在主函数中输入数据,调用函数得到结果。(要求用指针方法实现)

#include<stdio.h>
/*
编写函数计算一维实型数组前n个元素的最大值、最小值和平均值。
数组、n、最大值、最小值和平均值均作为函数形参,函数无返回值;
在主函数中输入数据,调用函数得到结果。(要求用指针方法实现)
*/

int main()
{
    void function();
    int num;
    scanf("%d",&num);
    int Arrays[num];
    for(int i=0;i<num;i++)
    {
        scanf("%d",&Arrays[i]);
        //printf("读取%d次",i=1); 
    }
    function(num,Arrays);
    return 0;
}

void function(int num,int *p)
{
    int max=*p,min=*p;
    float avg;
    for(int i=0;i<num;i++,p++)
    {
        avg+=*p;
        if(*p>max)max=*p;
        if(*p<min)min=*p;
    }
    //printf("avg:%f\n",avg);
    avg/=num;
    printf("max:%d.00\nmin:%d.00\naveg:%.2f",max,min,avg);
}

我本地运行没问题,但在qingLine里运行的aveg答案是错误的,难搞。

int Arrays[num];这个写法VC++不支持
另外注意两个问题
一个是输入输出的格式是否符合要求
一个是min max在某些系统中是库函数,变量名换一个

题目要求 : 数组、n、最大值、最小值和平均值均作为函数形参
也就是说 你的函数定义就有问题,另外打印也需要放到主函数里