首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求问 while(scanf("%f"&c) && c!=0.0 ),该怎么处理

2013-08-09 
求问 while(scanf(%f,&c) && c!0.0 )新人学C,求大牛指教 代码: #includestdio.h int main() {float c

求问 while(scanf("%f",&c) && c!=0.0 )
新人学C,求大牛指教 
代码: 
#include<stdio.h> 
int main() 

     float c; 
     while(scanf("%f",&c) && c!=0.0 ) 
     { 
         float sum=0.0; 
         int i=2; 
         while(1) 
         { 
             sum += 1.0/i; 
             if(sum>=c) 
             { 
                 printf("%d card(s)\n",i-1); 
                 break; 
             } 
             i++; 
         } 
     } 
     return 0; 

print语句是什么时候执行的呢? 
输入是 
1.00 
3.71 
0.04 
5.19 
0.00 
  
输出为什么是 
3 card(s) 
61 card(s) 
1 card(s) 
273 card(s) 
  
而不是 
1.00 
3 card(s) 
3.71 
61 card(s) 
0.04 
1 card(s) 
5.19 
273 card(s) 
0.00 
  
新人学C,求大牛指教 
--  C printf
[解决办法]
每scanf一个数据,printf便执行一次。
如果想同时输出C的值的话,可参考以下代码:

#include<stdio.h> 
int main() 

float c; 
while(scanf("%f",&c) && c!=0.0 ) 



float sum=0.0; 
int i=2; 
while(1) 

sum += 1.0/i; 
if(sum>=c) 
{
printf("%.2f\n",c);
printf("%d card(s)\n",i-1); 
break; 

i++; 


return 0; 

热点排行