求平均成绩
Posted blfbuaa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求平均成绩相关的知识,希望对你有一定的参考价值。
Problem B: 求平均成绩
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 43 Solved: 6
[Submit][Status][Web Board] [Edit] [TestData]
Description
班上有学生若干名,已知每名学生的成绩(整数),求班上全部学生的平均成绩。保留到小数点后两位。同一时候输出该平均成绩整数部分四舍五入后的数值。 第一行有一个整数n(1<= n <= 100),表示学生的人数。其后n行每行有1个整数,表示每一个学生的成绩,取值在int范围内。
Input
2 12 14
Output
13.00 10
Sample Input
2
12
14
Sample Output
13.00 10
HINT
要输出浮点数、双精度数小数点后2位数字,能够用以下这样的形式:
printf("%.2lf", num);
思路:我交了几次。得出了比較特殊的数据。。比方说是平均成绩sum是94.994……应该输出的是94.99 90,假设平均成绩sum是94.995……的话,应该输出95.00 100 int copy=int(sum);
所以我想出了对 平均成绩+0.005+5 与 (copy/10+1)*10比較。假设小于的话,就输
出copy/10*10,否则输出(copy/10+1)*10;
感觉这道题还是挺难的。发现这个做法感觉挺好。。
。
#include<iostream> #include<stdio.h> using namespace std; int main() { int n,i,copy; double a[100],sum; while(scanf("%d",&n)!=EOF) { sum=0; for(i=0;i<n;i++) { cin>>a[i]; sum+=a[i]; } sum=sum/n; copy=int(sum); printf("%.2lf ",sum); if(sum+5+0.005<(copy/10+1)*10) cout<<copy/10*10<<endl; else cout<<(copy/10+1)*10<<endl; } return 0; }
以上是关于求平均成绩的主要内容,如果未能解决你的问题,请参考以下文章