写北大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个回答

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问