键盘录入一个月份 month,判断属于哪个季节。(3 - 5 月为春季、6 - 8 月为夏季、9 - 11 月为秋季、12,1,2 月为冬季
#include <functional> #include <iostream> #include <limits> using namespace std; int main() { int month; cin >> month; if(cin.fail()) { cout<<"请重新输入正确的整数月份:"<<endl; cin.clear(); cin.ignore(numeric_limits<streamsize>::max(),'\n'); } if(month<1 || month>12) { cout<<"不合法"<<endl; } else { if(month>=3 && month<6) { cout<<"春季"; } else if (month>=6 && month<9) { cout<<"夏季"; } else if (month>=8 && month<12) { cout<<"秋季"; }else { cout<<"冬季"; } } return 0; }
试了试用枚举类型来解决:
用于定义一组命名的常量,以提高代码的可读性、可维护性和安全性。
提高代码可读性,枚举成员中的值从0开始递增,也可以手动设置,这样switch中的判断也就可以用了
#include <functional> #include <iostream> #include <limits> using namespace std; enum season { spring = 1, summer, autumn, winter }; season func(int month) { season aaa; if (month >= 3 && month < 6) { aaa = spring; } else if (month >= 6 && month < 9) { aaa = summer; } else if (month >= 8 && month < 12) { aaa = autumn; } else { aaa = winter; } return aaa; } int main() { int month; cin >> month; if (cin.fail()) { cout << "请重新输入正确的整数月份:" << endl; cin.clear(); cin.ignore(numeric_limits<streamsize>::max(), '\n'); } if(month>=1 && month<13) { switch(func(month)) { case spring: cout<<"春季"; break; case summer: cout<<"夏季"; break; case autumn: cout<<"秋季"; break; case winter: cout<<"冬季"; break; } }else { cout<<"不合法"<<endl; } return 0; }