#include <stdio.h>
//思路:
// 1.用一个float数组a[100]来存储输入的各个科目成绩,
// 2.再定义一个指针变量保存数组的首地址,
// 3.再通过输入科目数n的值,用一个for循环按顺序存到数组里;
// 4.如何找出最大值和最小值:用冒泡排序;
// 5.如何求出平均值:遍历数组累加值在除以科目数n.
int main()
{
int n=0;
int i=0;
float a[100]={0};
float * p=&a;
float max=0;
float min=0;
float ave=0;
scanf("%d",&n);
for(i=0;i<n;i++)//将科目成绩存到数组里
{
scanf("%f",p);//注意,这里数组p就是数组的首地址,不用取地址&
p++;
}
//接下来用冒泡排序找出最大值和最小值,只需要一趟,比较n-1次就行
//冒泡:有两种方式,
// 1.将最小的先冒出来
// 2.将最大的先冒出来
max=a[0];//将max设为第一个元素
min=a[0];//将min设为第一个元素
for(i=0;i<n-1;i++)
{
if(a[i]<=a[i+1])
{
max=max<=a[i+1]?a[i+1]:max;//比较两个数的最大值,再和max比较,找出最大值存到max里
min=min<=a[i]?min:a[i];//比较上一轮的最小值和这一轮的最小值两个数的最小值,找出最小值
}
else
{ max=max>a[i]?max:a[i];
min=a[i+1]<min?a[i+1]:min;
}
// ave=ave+*p++;//这种写法错了,在之前P指针已经指向最后一个元素了
ave+=a[i];
}
ave=(ave+a[n-1])/n;
printf("%.2f %.2f %.2f",max,min,ave);
return 0;
}