首页 > 代码库 > 求平均成绩

求平均成绩

Problem B: 求平均成绩

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 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;
}

求平均成绩