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;
} 展开
#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;
} 展开
1个回答
2010-05-05
展开全部
double型的格式控制应该用%lf,而不是%ld
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询