1 条题解

  • 0
    @ 2025-8-24 22:41:45

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar PineappleSummer
    时光飞逝啊

    搬运于2025-08-24 22:41:45,当前版本为作者最后更新于2023-02-24 18:56:38,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    第一篇主题库题解。

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

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

    Problem 1 求最大值

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

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

    int maxx=-1;
    

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

    maxx=max(maxx,a);
    

    Problem 2 求最小值

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

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

    int minn=999;
    

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

    minn=min(minn,a);
    

    Problem 3 求平均值

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

    总值 sumsum 初值定义为 00,之后加上每次输入的分数 aa

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

    输出代码:

    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] 成绩分析 
    
    • 1

    信息

    ID
    7901
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者