主页
最近更新
题解 P8717 【成绩分析】
最后更新于 2025-05-01 17:02:30
作者
qqwzczhrll
分类
题解
题解
P8717
复制 Markdown
更新文章内容
## 题意 - 给定 $n$ 个正整数 $a_1 \dots a_n$ 。 - 你要求出最高分、最低分与平均分。 - $1 \leq n \leq 10000$,平均分四舍五入保留两位小数。 ## 做法 用打擂台的方法求出最高分与最低分。 ```cpp 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_n$ 的和,最后用 `double midn` 计算平均数。 ```cpp for(int i=1;i<=n;i++) { //sum已提前清零 sum+=a[i]; } //midn已事先声明为double类型 midn=1.0*sum/n; ``` ## AC代码 ```cpp #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; } ```
Loading...
点赞
0
收藏
0