洛谷测分

题意 题目传送门 给定 n n n 个正整数 a 1 … a n a_1 \dots a_n a 1 ​ … a n ​ 。 你要求出最高分、最低分与平均分。

题意

题目传送门

  • 给定 n n n 个正整数 a 1 … a n a_1 \dots a_n a1an
  • 你要求出最高分、最低分与平均分。
  • 1 ≤ n ≤ 10000 1 \leq n \leq 10000 1n10000,平均分四舍五入保留两位小数。

做法

用打擂台的方法求出最高分与最低分。

for(int i=1;i<=n;i++)
{
   //minn已事先声明为一个很大的数
   //maxn已事先声明为一个很小的数
   //a数组已提前声明并输入
   if(a[i]<minn)
   	minn=a[i];
   if(a[i]>maxn)
    	maxn=a[i];
   sum+=a[i];
}

再用 int sum 储存 a 1 a_1 a1 - a n a_n an 的和,最后用 double midn 计算平均数。

for(int i=1;i<=n;i++)
{
    //sum已提前清零
    sum+=a[i];
}
//midn已事先声明为double类型
midn=1.0*sum/n;

AC代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a[10005],minn=1e9,maxn=-1e9;
    long long sum=0;
    double midn;
    int n,i;
    cin>>n;
    for(i=1;i<=n;i++)
    	cin>>a[i];
    for(i=1;i<=n;i++)
    {
    	if(a[i]<minn)    //打擂台求最小值
    		minn=a[i];
    	if(a[i]>maxn)	 //打擂台求最大值
    		maxn=a[i];
    	sum+=a[i];       //累加求和
    }
    midn=1.0*sum/n;	//注意要乘1.0
    cout<<maxn<<endl;
    cout<<minn<<endl;
    printf("%.2lf",midn);//用printf四舍五入保留两位小数输出
    return 0;
}
知秋君
上一篇 2024-08-26 15:36
下一篇 2024-08-26 15:02

相关推荐