在线编译器 C

#include <stdio.h> int main() { int M; scanf("%d",&M); if(M<=2&&M==12){ printf("winter"); } if(2<M&&M<=5){ printf("spring"); } if(5<M&&M<=8){ printf("summer"); } if(8<M&&M<=11){ printf("autumn"); } return 0; }
这段代码根据输入的月份数字(1-12)输出对应的季节。但逻辑上有问题:冬季的条件写错了,导致12月、1月、2月这三个月份无法正确归类为冬季。

- 第一个if条件 `M<=2&&M==12` 永远不可能同时成立,因为一个数不可能既小于等于2又等于12。你需要重新思考冬季的月份范围,特别是跨年的情况(12月、1月、2月)。
- 注意月份1和2目前没有被任何条件覆盖,所以输入1或2时程序不会输出任何内容。