zxcvbnmasdf 发表于 2021-10-13 15:10:59

scanf函数的输入用法

各位大佬,想问一下输入的格式是2015-07,那么07为什么在下面的代码中好像就可以当成7来用了,是关于scanf函数的什么知识点能这么用吗?


#include <stdio.h>

int main()
{
      float pm25 = {
                {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 31.3, 35.5, 58.7, 49.6, 55.5},
                {59.8, 54.9, 33.1, 38.2, 26.6, 20.5, 27.8, 38.5, 41.5, 44.7, 38.1, 41.5},
                {34.9, 36.4, 47.5, 37.9, 30.6, 23.4, 26.6, 34.3, 0.0, 0.0, 0.0, 0.0}
      };
      int year, month;

      printf("请输入待查询年月分(年-月): ");
      scanf("%d-%d", &year, &month);//在这输入2015-07,但好像后面的代码都是直接把07当成7来用,这是为什么

      if (year < 2014 || year > 2016 || month < 1 || month > 12)
      {
                printf("输入数据错误!\n");
      }
      else
      {
                year -= 2014;
                month -= 1;
                if (pm25)
                {
                        printf("%d年%d月广州的PM2.5值是: %.2f\n", year + 2014, month + 1, pm25);
                }
                else
                {
                        printf("抱歉,该月份未收录数据!\n");
                }
      }

      return 0;
}

Xiao_Mo 发表于 2021-10-13 15:15:01

自动省略吧?就像你输出00010实际输出是10一样,要不你输出改成char形式?{:10_260:}

傻眼貓咪 发表于 2021-10-13 15:15:45

%d (07 表示 7)

qsy78 发表于 2021-10-13 15:41:31

%d是整形,所以07=7.

泌阳 发表于 2021-10-13 21:37:26

#include <stdio.h>

int main()
{
      float pm25 = {
                {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 31.3, 35.5, 58.7, 49.6, 55.5},
                {59.8, 54.9, 33.1, 38.2, 26.6, 20.5, 27.8, 38.5, 41.5, 44.7, 38.1, 41.5},
                {34.9, 36.4, 47.5, 37.9, 30.6, 23.4, 26.6, 34.3, 0.0, 0.0, 0.0, 0.0}
      };
      int year, month;

      printf("请输入待查询年月分(年-月): ");
      scanf("%d-%d", &year, &month);//在这输入2015-07,但好像后面的代码都是直接把07当成7来用,这是为什么

      if (year < 2014 || year > 2016 || month < 1 || month > 12)
      {
                printf("输入数据错误!\n");
      }
      else
      {
                year -= 2014;
                month -= 1;
                if (pm25)
                {
                        printf("%d年%.2d月广州的PM2.5值是: %.2f\n", year + 2014, month + 1, pm25);
                }
                else
                {
                        printf("抱歉,该月份未收录数据!\n");
                }
      }

      return 0;
}
这样就可以了
页: [1]
查看完整版本: scanf函数的输入用法