通過這道題目學會了如何截去浮點數的部分小數位,可以通過如下代碼實現:
sprintf(tmp,"%.mlf",n);
sscanf(tmp,"%lf",&n);

其中tmp為一個字符數組,n為一個浮點數,m為要保留的小數位。
以下是我的代碼:
#include<stdio.h>
int main()
{
/*
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
//*/
const long maxn=1007;
long n;
while(scanf("%ld",&n)==1)
{
if(n==0) break;
double a[maxn],ave=0,ans1=0,ans2=0;
char tmp[maxn];
for(long i=1;i<=n;i++)
{
scanf("%lf",&a[i]);
ave+=a[i];
}
ave/=n;
sprintf(tmp,"%.2lf",ave);
sscanf(tmp,"%lf",&ave);
for(long i=1;i<=n;i++)
if(a[i]<ave)
ans1+=(ave-a[i]);
else ans2+=(a[i]-ave);
if(ans1<ans2) printf("$%.2lf\n",ans1);
else printf("$%.2lf\n",ans2);
}
return 0;
}
posted on 2010-02-04 20:23
lee1r 閱讀(840)
評論(1) 編輯 收藏 引用 所屬分類:
題目分類:基礎/模擬