用c语言编写程序,某同学从2020年1月1日开始,坚持三天学习两天 休息。比如2020年1月1、2、3日学习,4、5日休 息。6、7、8日学习,9,10日休息。现任意输入 一个年、月、日。问这天是学习还是休息。要求: 输入年、月、日为整数;输出的格式为: “XXXX 年X月X日 休息(或者学习)”
时间: 2023-07-10 15:11:04 浏览: 118
好的,根据您的要求,我可以为您编写一个简单的 C 语言程序来实现该功能。请参考下面的代码:
```c
#include <stdio.h>
int main()
{
int year, month, day;
int days;
printf("请输入年月日,格式为 yyyy mm dd:");
scanf("%d %d %d", &year, &month, &day);
// 计算距离 2020 年 1 月 1 日的天数
days = (year - 2020) * 365 + (year - 2020) / 4 + day;
switch (month - 1)
{
case 11: // 12 月
days += 30;
case 10: // 11 月
days += 31;
case 9: // 10 月
days += 30;
case 8: // 9 月
days += 31;
case 7: // 8 月
days += 31;
case 6: // 7 月
days += 30;
case 5: // 6 月
days += 31;
case 4: // 5 月
days += 30;
case 3: // 4 月
days += 31;
case 2: // 3 月
days += 28;
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
days += 1; // 闰年 2 月多一天
}
case 1: // 2 月
days += 31;
case 0: // 1 月
break;
default:
printf("输入的月份有误!\n");
return 0;
}
// 判断是学习还是休息
if ((days + 1) % 5 == 0 || (days + 2) % 5 == 0)
{
printf("%d 年%d 月%d 日 休息\n", year, month, day);
}
else
{
printf("%d 年%d 月%d 日 学习\n", year, month, day);
}
return 0;
}
```
程序的原理是先计算输入的日期距离 2020 年 1 月 1 日的天数,然后根据这个天数确定是学习还是休息。具体实现见代码注释。
阅读全文