HDU4493 家庭教师
题目描述:给出12个浮点正数(精确到小数点后两位),要求这12个数的平均值。
输入:首先一个T(1<=T)表输入实例个数。然后每个实例有12行。
输出:首先是符号$,然后是平均值,但是消除了尾部0.(尾部不能使0)
分析:对于每个实例,直接读入,然后求平均值,然后将平均值保存到一个字符数组中去,在四舍五入到小数点后两位并处理尾部0,然后输出。熟悉sprintf和sscanf的用法。
#include<cstdio>
using namespace std;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
double var=0.0,x;
for(int i=0;i<12;i++)
{
scanf("%lf",&x);
var+=x;
}
var /=12;
char s[100];
int n=sprintf(s,"%.2lf",var);
printf("$");
for(int i=0;i<n;i++)
{
if(s[i]!='.')printf("%c",s[i]);
else
{
if(s[i+2]!='0')
{
printf("%c",s[i]);
printf("%c",s[i+1]);
printf("%c",s[i+2]);
}
else if(s[i+1]!='0')
{
printf("%c",s[i]);
printf("%c",s[i+1]);
}
break;
}
}
printf("\n");
}
return 0;
}