#include <stdio.h>

float Max(float score[],int n);
float Min(float score[],int n);
float Average(float score[],int n);

int main() {
    int n, b;
    float max,min,average;
    scanf("%d",&n);
    float score[n];
    for(b=0;b<n;b++){
        scanf("%f ",&score[b]);
    }
    max=Max(score,n);         //求最高分
    min=Min(score,n);         //求最低分
    average=Average(score,n); //求总分

    printf("%.2f %.2f %.2f",max,min,average/n);
    return 0;
}
//求最高分
float Max(float score[],int n)
{
    float M=score[n-1];
    while(n){
        if(M<score[n-1]){
            M=score[n-1];
        }
        n--;
    }
    return M;
}
//求最低分
float Min(float score[],int n)
{
    float M=score[n-1];
    while(n){
        if(M>score[n-1]){
            M=score[n-1];
        }
        n--;
    }
    return M;
}
//求总数
float Average(float score[],int n)
{
    float num=0;
    while(n){
        num+=score[n-1];
        n--;
    }
    return num;
}


//不用函数写法
/*
#include <stdio.h>
 
int main() {
    int n;
    double temp, sum = 0, max = 0, min = 100, average;
    scanf("%d",&n);
    while( scanf("%lf",&temp) != EOF){
        sum += temp;
        if(temp > max){
            max = temp;
        }
        if(temp < min){
            min = temp;
        }
    }
    average = sum / n;
    printf("%.2f %.2f %.2f",max, min, average);
    return 0;
}
*/

在这两种写法中,使用函数的写法更好。以下是原因:

  1. 可重用性:使用函数的写法可以将计算最大值、最小值和平均值的逻辑封装在函数中。这样,如果你在代码的其他部分需要再次计算这些值,你可以直接调用这些函数,而不需要重复编写相同的逻辑。这提高了代码的可重用性。
  2. 可读性:使用函数的写法使得代码更加清晰和易于理解。通过将计算逻辑封装在函数中,你可以在main()函数中只关注主要的逻辑,而不需要关注具体的计算细节。这提高了代码的可读性。
  3. 模块化:使用函数的写法使得代码更加模块化。通过将不同的功能划分为不同的函数,你可以更好地组织和管理代码。这使得代码更易于维护和调试。

另外,使用函数的写法还可以提供更好的代码扩展性。如果你需要在将来添加其他功能或修改现有功能,你只需要修改相应的函数,而不需要修改整个程序。

因此,使用函数的写法更好,因为它提供了更好的可重用性、可读性、模块化和扩展性。