在线编译器 C

#include <stdio.h> int main() { int month; scanf("%d",&month); if(3<=month&&month<=5) printf("spring"); else if (6<=month&&month<=8) printf("summer"); else if (9<=month&&month<=11) printf("autumn"); else printf("winter"); return 0; }
这段代码根据输入的月份数字(1-12)输出对应的季节。它使用了多个 if-else if 条件判断,将3-5月视为春季,6-8月为夏季,9-11月为秋季,其余月份(12、1、2)为冬季。

- 代码逻辑正确,但有一个小问题:当输入月份为12时,程序会输出“winter”,这是正确的。但注意,你的条件判断中,最后一个 else 覆盖了所有不满足前面条件的月份,包括12、1、2,这没问题。不过,如果输入的数字不在1-12范围内(比如13或0),程序也会输出“winter”,这可能会让用户困惑。考虑是否需要处理非法输入。

- 另外,你的代码风格良好,但可以思考一下:如果使用 switch 语句来实现同样的功能,会不会更清晰?或者,有没有办法让代码更简洁,比如用数组或数学运算来映射月份到季节?