陈大熊一级棒 @ 2019-11-20 16:10:44
int main()
{int a,k,i;
double s=0;
scanf("%d",&k);
for(i=1; ;i++)
{
s=1/i+s;\\如果这里把1改为1.0就可以有正确结果了。为啥
if(s>k)
break;
}
printf("%d",i);
return 0;
}
by 陈大熊一级棒 @ 2019-11-20 16:10:52
如果这里把1改为1.0就可以有正确结果了。为啥
by 神山识 @ 2019-11-20 16:11:44
当然了啊,int/int 和 double/double 的结果可能是一样的吗?
by Windowsredstone @ 2019-11-20 16:13:24
类型。
1
会当int
来算,而1.0
会转成double
算
(double)1
也可以
@陈大熊一级棒
by 陈大熊一级棒 @ 2019-11-20 16:23:39
@我不是箭毒蛙 就是int/int用于double类型的输出不了?
by 陈大熊一级棒 @ 2019-11-20 16:23:48
@Windowsredstone 就是int/int用于double类型的输出不了?
by ud2_ @ 2019-11-20 17:03:30
@陈大熊一级棒
int
运算保留整数部分,double
运算就可以保留一定位数的小数。
by Windowsredstone @ 2019-11-20 17:13:52
@sjx233_
t=-1
(
by ud2_ @ 2019-11-20 17:16:34
@Windowsredstone ^
@陈大熊一级棒 另外,注释的斜杠写反了。