http://acm.hdu.edu.cn/showproblem.php?pid=4493
话说这道题真是坑啊。一个很简单的题目做了很久。但还是收获很大。原来这么写printf("%.0lf",d);也可以!
做题的时候还是要注意精度。下次都注意输出的时候要用printf("%.1lf",d) printf("%.2lf",d)或者cout<<fixed<<setprecision(2)<<endl;这种形式控制输出。
代码如下:
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<vector>
#include<cmath>
#include<stdlib.h>
#include<iomanip>
#include<list>
#include<deque>
#include<map>
#include <stdio.h>
#include <queue>
#define maxn 10000+5
#define ull unsigned long long
#define ll long long
#define reP(i,n) for(i=1;i<=n;i++)
#define rep(i,n) for(i=0;i<n;i++)
#define cle(a) memset(a,0,sizeof(a))
#define mod 90001
#define PI 3.141592657
const ull inf = 1LL << 61;
const double eps=1e-5;
using namespace std;
bool cmp(int a,int b){
return a>b;
}
int main()
{
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
int n;
cin>>n;
double sum,d;
double t,res;
while(n--)
{
sum=0;
for(int i=1;i<=12;i++)
{
cin>>d;
sum+=d;
}
t=sum/12;
t=floor(t*100+0.5);
res=t/100.0;
if((int)t%100==0)printf("$%.0lf\n",res);
else if((int)t%10==0)printf("$%.1lf\n",res);
else printf("$%.2lf\n",res);
}
return 0;
}