| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
哪位同仁给找一下错,(WA),是否是精度问题啊???#include<stdio.h>
int c(m,n);
void main()
{
int n,m,i;
int rank[50001];
int aver,b;double u;
scanf("%d%d",&n,&m);
while(n!=0&&m!=0)
{
aver=0;
for(i=1;i<=n;i++)
scanf("%d",&rank[i]);
u=(double)c(m,n);
b=1;
aver=(rank[m]-rank[n-m+1])*b;
for(i=m+1;i<=n;i++)
{
b=b*(i-1)/(i-m);
aver+=(rank[i]-rank[n-i+1])*b;
}
printf("%.3f\n",aver/u);
scanf("%d%d",&n,&m);
}
}
int c(m,n)
{
int i,rel=1;
if(m>n)
return 0;
else if(m==n)
return 1;
else
{
for(i=n;i>=n-m+1;i--)
{
rel*=i;
}
for(i=1;i<=m;i++)
rel/=i;
return rel;
}
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator