与数组有关如何解是否运用for

问题遇到的现象和发生背景

从键盘读入大于1小于100的正整数n,再输入n个整数。要求找出两个最大值,分别为小于平均值的最大数和大于平均值的最大数,不考虑最大数和平均值相等的情况。输出这两个最大数和平均值,顺序为较小最大数,平均值(保留两位小数点),较大最大数。

大于平均数的最大数???不就是所有数中的最大数吗?

//从键盘读入大于1小于100的正整数n,再输入n个整数。要求找出两个最大值,分别为小于平均值的最大数和大于平均值的最大数,不考虑最大数和平均值相等的情况。
//输出这两个最大数和平均值,顺序为较小最大数,平均值(保留两位小数点),较大最大数。
#include <stdio.h>
int main()
{
    int n,a[100],i,sum=0,max,m,f=0;
    float avg;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
        if(i==0)
            max = a[0];
        else if(max < a[i])
            max = a[i];
        sum += a[i];
    }
    avg = sum*1.0/n;
    for(i=0;i<n;i++)
    {
        if(a[i] >= avg)
          continue;
        if(f==0)
        {
          m = a[i];
          f = 1;
        }
        else if(a[i] > m)
            m = a[i];
    }
    printf("%d,%.2f,%d",m,(m+max)/2.0,max);
}