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