-->
当前位置:首页 > 题库 > 正文内容

函数题:枚举月份 - C/C++ 枚举与联合

Luz3年前 (2022-09-06)题库841
定义枚举型Month,其中的枚举项以英文月份名January、February等表示;实现如下的getDays()函数;使得下述程序能正确打印指定年月的天数。

说明:函数返回指定年月的天数,getDays(2022,April)应返回30,请注意区分闰年。

### 函数接口定义:
c++
int getDays(int year, enum Month m);



### 裁判测试程序样例:
c++
#include <stdio.h>
#include <stdbool.h>

bool isLeapYear(const int year){
//四年一闰,百年不闰,四百年又闰
if (year%400==0)
return true;
else if (year%100==0)
return false;
else if (year%4==0)
return true;
else
return false;
}

//此处定义enum Month枚举类型
//此处定义getDays()函数

int main()
{
printf("Year %d, Month %d: %d days\n",1600,(int)February,getDays(1600,February));
printf("Year %d, Month %d: %d days\n",2100,(int)February,getDays(2100,February));
printf("Year %d, Month %d: %d days\n",2104,(int)February,getDays(2104,February));
printf("Year %d, Month %d: %d days\n",1997,(int)February,getDays(1997,February));
printf("Year %d, Month %d: %d days\n",1996,(int)February,getDays(1996,February));

for (int i=1;i<=12;i++){
printf("Year %d, Month %d: %d days\n",5102,(enum Month)i,getDays(5102,(enum Month)i));
}
return 0;
}


### 输入样例:
in


### 输出样例:
out
Year 1600, Month 2: 29 days
Year 2100, Month 2: 28 days
Year 2104, Month 2: 29 days
Year 1997, Month 2: 28 days
Year 1996, Month 2: 29 days
Year 5102, Month 1: 31 days
Year 5102, Month 2: 28 days
Year 5102, Month 3: 31 days
Year 5102, Month 4: 30 days
Year 5102, Month 5: 31 days
Year 5102, Month 6: 30 days
Year 5102, Month 7: 31 days
Year 5102, Month 8: 31 days
Year 5102, Month 9: 30 days
Year 5102, Month 10: 31 days
Year 5102, Month 11: 30 days
Year 5102, Month 12: 31 days


请注意:本题只需要提交相关函数及枚举类型的定义代码,不要提交完整程序。


### 感觉不会?  那试着听听**免费的B站网课**
[简洁的C和C++ - 重庆大学在线课程](https://www.bilibili.com/video/BV1it411d7zx/)
[Python编程基础及应用 - 重庆大学在线课程](https://www.bilibili.com/video/BV1kt411R7uW/)
![image.png](~/6e79c9e3-cb7f-486d-ab78-36b5a8f655c0.png)










答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。