#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、最大值、最小值和平均值均作为函数形参
也就是说 你的函数定义就有问题,另外打印也需要放到主函数里