杭电oj1064 c++

题目简介:

 

Problem Description

Larry graduated this year and finally has a job. He’s making a lot of money, but somehow never seems to have enough. Larry has decided that he needs to grab hold of his financial portfolio and solve his financing problems. The first step is to figure out what’s been going on with his money. Larry has his bank account statements and wants to see how much money he has. Help Larry by writing a program to take his closing balance from each of the past twelve months and calculate his average account balance.

 

 

Input

The input will be twelve lines. Each line will contain the closing balance of his bank account for a particular month. Each number will be positive and displayed to the penny. No dollar sign will be included.

 

 

Output

The output will be a single number, the average (mean) of the closing balances for the twelve months. It will be rounded to the nearest penny, preceded immediately by a dollar sign, and followed by the end-of-line. There will be no other spaces or characters in the output.

 

 

Sample Input

 

100.00 489.12 12454.12 1234.10 823.05 109.20 5.27 1542.25 839.18 83.99 1295.01 1.75

 

 

Sample Output

 

$1581.42

        这道题的关键在于最后的四舍五入并保留两位小数,我采用的办法是:令av为每月余额的总和,先用保留最近整数的round()函数求出av*100四舍五入后的整数,再将此整数除以100,就得到保留两位小数的四舍五入值啦!本来在for循环之前还加了while(1),结果因为没有终止循环的代码而时间超限,去掉之后就好啦。

AC代码如下:

 

#include<iostream>
#include<math.h>
using namespace std;
double round(double r)  
{  
    return (r > 0.0) ? floor(r + 0.5) : ceil(r - 0.5);  
}  
int main()
{
	double a[12],t=0,av;    
	for(int i=0;i<12;i++){
		cin>>a[i];
	 	t+=a[i];
	}
	av=t/12;
	av=round(av*100);
	cout<<"$"<<av/100<<endl;
	t=0;
		
}


关于四舍五入函数的原理:http://blog.csdn.net/hankai1024/article/details/7887415

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值