hjgfshecvyua @ 2020-12-13 13:04:56
#include<stdio.h>
int main()
{
int i,n,k,j=0;
int sum1=0,sum2=0;
float aver1,aver2;
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
{
if(i>=k&&i%k==0)
{
sum1=sum1+i;
j++;
}
else
sum2=sum2+i;
}
aver1=sum1/j;
aver2=sum2/(n-j);
printf("%.1f %.1f",aver1,aver2);
return 0;
}
by CGDGAD @ 2020-12-13 13:05:44
请用double试试。
by CGDGAD @ 2020-12-13 13:06:22
@hjgfshecvyua
by 周勋吾儿 @ 2020-12-28 22:22:02
@NSObject 为啥要用double,用float输出来就不对,求救大神
by CGDGAD @ 2020-12-29 06:45:26
@周勋吾儿 。。。
两者是不一样的,float
会有精度问题
比如你算出来了 float
中可能会被保存成 double
精度大,不会出现这样的情况
信息学奥赛中一般只使用 double
,没人用 float
by CGDGAD @ 2020-12-29 06:46:52
float精度可能6位小数罢,后面就不准了
by 周勋吾儿 @ 2020-12-29 12:28:47
@NSObject 哦哦 好的,谢谢大哥了!
by poorscholar107 @ 2021-01-21 12:23:49
啊,我也是40分,感谢这个帖子