左嘉


私信TA

用户名:zuojia

访问量:88643

签 名:

Jz

等  级
排  名 5
经  验 34540
参赛次数 226
文章发表 72
年  龄 40
在职情况 在职
学  校 北京理工大学
专  业

  自我简介:

原题链接:题目72 - ACM在线评测系统

描述

拉里今年毕业了,并且最终有了一份工作。他正在大量赚钱,但不知怎么地从来没有满足。拉里已经决定,把持住他在财政上的投资组合,并且解决他的理财问题。第一步是解决:他的钱怎么样了。拉里有他银行账户的报表,并想看到他有多少钱。写一个程序帮助拉里从过去十二个月中的每月做结算,并计算他账户里余额的平均值。

输入

输入十二行。每行将包含一个特定月份:银行账户的结算。每个数将是正数并且精确显示到美分。不包含美元符号。

输出

这里输出将是一个单独的数字,表示这十二个月结算得到的平均值(均值)。近似到美分,前有美元符号(linux命令行提示符),后跟行尾。输出中没有其他空格或字符。

样例输入

100.00

489.12

12454.12

1234.10

823.05

109.20

5.27

1542.25

839.18

83.99

1295.01

1.75

样例输出

1581.42

解题思路:

思路很简单,就是求十二个数的均值。

用C语言描述也不复杂,精度修饰符让你指定想要的小数位数,%.2f将会显示带有2位小数的浮点数,精确到美分。

可是用C++怎么表示精度呢?查询C/C++语言参考,发现precision()函数,设置或返回当前要被显示的浮点变量的位数。例如,下面的代码:

    float num = 314.15926535;
    cout.precision( 5 );
    cout << num;

显示结果是:314.16。可是这里并没有指明小数的位数,只有寻找其他方法。

在c++程序里面经常见到下面的头文件#include <iomanip>,io代表输入输出,manip是manipulator(操纵器)的缩写。使用setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6。如果setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。setiosflags(ios::fixed)是用定点方式表示实数。具体用法见参考代码。

注意事项:

precision函数通常优先显示浮点数的整数部分

参考代码:

#include<stdio.h>
int main(){
	int b=12;
	float a,c=0;
	while(b--){
		scanf("%f",&a);
		c+=a;//累加
	}
	printf("%.2f\n",c/12);//精确到美分
}

优秀代码

#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
	double sum=0,a;
	for(int i=0;i<12;i++)
	{
		cin>>a;
		sum+=a;
	}
	cout<<fixed<<setprecision(2)<<sum/12.0<<endl;
}


 

0.0分

21 人评分

  评论区

  • «
  • »