读书人

求问 while(scanf(quot;%fquot;amp;c) amp;amp; c!=0.0

发布时间: 2013-08-09 15:16:24 作者: rapoo

求问 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;
}

读书人网 >C语言

热点推荐