A529231559 发表于 2018-10-29 23:00:07

关于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) ;
        }
       
}

运行后输入的数字是用空格隔开的时候,显示的结果是正常的,但是输入的数字中间用逗号隔开的时候,第二个答案就显示一堆数字。请教一下大神这个是什么原因呢?

1005204767 发表于 2018-10-29 23:08:17

scanf 不读如空格所以显示的结果是正常的
而如果用逗号的话就打印的,的ascⅡ码

BngThea 发表于 2018-10-30 08:55:09

因为你的scanf中的分隔符不是逗号,所以用逗号隔开的时候将这个逗号当作了第二个输入

_ULTIMATE_CODER 发表于 2018-10-30 16:46:05

#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]
查看完整版本: 关于scanf的输入逻辑