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;
} 自动省略吧?就像你输出00010实际输出是10一样,要不你输出改成char形式?{:10_260:} %d (07 表示 7) %d是整形,所以07=7. #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]