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

写北大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没有这个问题

    已采纳该答案
    打赏 评论

相关推荐 更多相似问题