P8717 [蓝桥杯 2020 省 AB2] 成绩分析 题解

· · 题解

第一篇主题库题解。

\color{orangered}\text{题目传送门}

题意不再赘述。我们依次解决三个问题。

Problem 1 求最大值

因为要与每个分数作比较求出最大值,所以初值一定是要定义极小值。

题目上说每个分数都大于等于 0,所以我们定义最大值 maxx 的初值为 -1 即可。

int maxx=-1;

接下来对于每次输入的成绩,我们要进行比大小,用到 \max 函数,\max(a,b) 表示 a,b 中较大的值,所以代码为:

maxx=max(maxx,a);

Problem 2 求最小值

因为要与每个分数作比较求出最小值,所以初值一定是要定义极大值。

题目上说每个分数都小于等于 100,所以我们定义最小值 minn 的初值为 999 即可。

int minn=999;

接下来对于每次输入的成绩,我们要进行比大小,用到 \min 函数,\min(a,b) 表示 a,b 中较小的值,所以代码为:

minn=min(minn,a);

Problem 3 求平均值

求平均值我们需要知道总值和个数。

总值 sum 初值定义为 0,之后加上每次输入的分数 a

输入完后要再除以个数 n,记得要先强制转换为 double 类型的,再保留两位小数。

输出代码:

printf("%.2lf",sum*1.0/n);

本题完整代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,sum=0,minn=999,maxx=-1;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        int a;
        cin>>a;
        maxx=max(maxx,a);
        minn=min(minn,a);
        sum+=a;
    }
    printf("%d\n%d\n%.2lf",maxx,minn,sum*1.0/n);
    return 0;
}
//P8717 [蓝桥杯 2020 省 AB2] 成绩分析