646134029 发表于 2020-4-29 16:34:05

新手问一个关于scanf函数格式字符串得问题

#include <stdio.h>
void main()
{
        int a, b;
        printf("input a year's number: ");
        scanf("%d", &a);
        b = a%4;
        if (b=0)
        {
                printf("this is a leap year!\n");
        }
        else
        {
                printf("this is not a leap year!\n");
        }
}
在这个程序中,如果输入2014.0结果会输出this is not a leap year
问题是输入的a数据应该是整型数据,为什么输入float型数据程序依然可以运行,而且输出得也是this is not a leap year?

wp231957 发表于 2020-4-29 16:36:35

ifb=0      

qiuyouzhi 发表于 2020-4-29 16:36:48

我认为,一切的根源都在那个if里面
为啥是b=0?不是b==0吗?
#include <stdio.h>
int main()
{
      int a, b;
      printf("input a year's number: ");
      scanf("%d", &a);
      b = a%4;
      if (b==0)
      {
                printf("this is a leap year!\n");
      }
      else
      {
                printf("this is not a leap year!\n");
      }
}
P.S:小数部分会自动截断,你输入2020.5,会直接变成2020.
页: [1]
查看完整版本: 新手问一个关于scanf函数格式字符串得问题