原题链接:题目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分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复