Aaron-NZH 2018-12-23 18:19 采纳率: 33.3%
浏览 384
已采纳

写北大oj1003时的疑惑,求各位路过的大佬帮帮忙

#include
int main()
{
float l,sum,base;
int n;
scanf("%f",&l);
while(l!=0){
n=1;
base=2;
sum=1/base;
while(l>sum){
base++;
sum+=1/base;
n++;
}
printf("%d card(s)\n",n);
scanf("%f",&l);
}
return 0;
}
这一段代码是没有问题的正确答案

但是下面这段在我看来一样的代码为什么运行不了?
#include
int main()
{
float l,sum;
int n;
scanf("%f",&l);
while(l!=0){
n=1;
sum=1/(n+1);
while(l>sum){
n++;
sum+=1/(n+1);
}
printf("%d card(s)\n",n);
scanf("%f",&l);
}
return 0;
}

  • 写回答

1条回答

  • threenewbee 2018-12-23 16:04
    关注

    sum+=1/(n+1);
    因为1和n+1都是整数,这里是整除

    第一个程序的base是float没有这个问题

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器