心如止水
Je n'ai pas le temps
posts - 400,comments - 130,trackbacks - 0
通过这道题目学会了如何截去浮点数的部分小数位,可以通过如下代码实现:
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==0break;
       
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 阅读(824) 评论(1)  编辑 收藏 引用 所属分类: 题目分类:基础/模拟

FeedBack:
# re: UVa 10137 The Trip
2011-03-05 19:53 | hcplzss
博主您好,我看过了您的这个程序,但不明白为什么从题目(http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=13&page=show_problem&problem=1078)能化到这个程序上,您能给我大致解释一下思路吗?谢谢!  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理