ACM Hangover问题(北大ACM1003题) 求教C语言高手!

提交通过了的代码:#include<stdio.h>intmain(){intn;floatsum=0,m;scanf("%f",&m);while(m!=0.00){f... 提交通过了的代码:
#include <stdio.h>
int main(){
int n;
float sum=0,m;
scanf("%f",&m);
while(m!=0.00){
for(n=1;;n++){
sum+=1.0/(n+1);
if(sum>=m) break;
}
printf("%d card(s)\n",n);
scanf("%f",&m);
sum=0;
}
return 0;
}
为什么一换成double型的就出错了呢,连结果都得不到,输出成了死循环。(环境:VC++6.0)
#include <stdio.h>
int main(){
int n;
double sum=0,m;
scanf("%ld",&m);
while(m!=0.00){
for(n=1;;n++){
sum+=1.0/(n+1);
if(sum>=m) break;
}
printf("%d card(s)\n",n);
scanf("%ld",&m);
sum=0;
}
return 0;
}
展开
 我来答
匿名用户
2010-05-05
展开全部
double型的格式控制应该用%lf,而不是%ld
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式