原题链接:题目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 人评分
C语言训练-求素数问题 (C语言代码)浏览:1509 |
多输入输出练习1 (C语言代码)浏览:1219 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:368 |
WU-格式化数据输出 (C++代码)浏览:1313 |
矩阵加法 (C语言代码)浏览:1769 |
有关字符,字符串的输入输出函数说明浏览:498 |
数组与指针的问题浏览:760 |
勾股数 (C语言代码)浏览:830 |
C语言训练-大、小写问题 (C语言代码)浏览:719 |
C语言训练-自守数问题 (C语言代码)浏览:798 |