#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;


}