关于scanf的输入逻辑
原代码:#include <stdio.h>
void main()
{
float a;
int i;
for(i = 0;i < 10;i++)
{
scanf("%f",&a);
printf("a[%d] is %0.1f\n", i , a/2) ;
}
}
运行后输入的数字是用空格隔开的时候,显示的结果是正常的,但是输入的数字中间用逗号隔开的时候,第二个答案就显示一堆数字。请教一下大神这个是什么原因呢?
scanf 不读如空格所以显示的结果是正常的
而如果用逗号的话就打印的,的ascⅡ码 因为你的scanf中的分隔符不是逗号,所以用逗号隔开的时候将这个逗号当作了第二个输入 #include <stdio.h>
void main()
{
float a;
int i;
for(i = 0;i < 10;i++)
{
scanf("%f,",&a);
printf("a[%d] is %0.1f\n", i , a/2) ;
}
}
在f后面加个","即可。
为什么要除以二输出?
页:
[1]