yaokaibo @ 2024-10-16 20:14:54
#include<bits/stdc++.h>
using namespace std;
int main()
{
double c=0,d=0;
int a=0,b=0,x=0,y=0;
scanf("%d%d",&a,&b);
for(int i=1;i<=a;i++)
{
if(i%b==0)
{
c+=i;
x++;
}
else
{
d+=i;
y++;
}
}
c=c/x*1.0;
d=d/y*1.0;
printf("%.1llf %.1llf\n",c,d);
}
为什么样例和测试点1都能过还是爆零
by HJYH012 @ 2024-10-16 20:22:14
用
printf("%.1f %.1f\n",c,d);
不要用 %llf
by lkwbian @ 2024-10-16 20:23:45
把x和y也定义成double试一下
by HJYH012 @ 2024-10-16 20:24:26
自证AC
by lkwbian @ 2024-10-16 20:24:31
而且 %.1llf 是什么东西
by TEPRUNNING @ 2024-10-16 20:31:55
对于printf函数来说
llf 对应 long double 类型
lf 对应 double 类型
f 对应 float 类型
对于不同的数据类型,printf()函数读取方式不同 所以应选择类型对应的标志
(或者对你的c,d变量进行强制类型转换,让CPU为它们分配两个可以容纳long double 类型的寄存器)
by yaokaibo @ 2024-10-16 20:36:17
已过,谢谢各位大佬除TEPRUNNING
by CGZ__tqxd @ 2024-10-19 10:36:16
@yaokaibo lezitaotao(yaoyao),不接受反驳。