用C语言设计程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以计算该输入日期在日历上隔一天的日期。例如,输入为2004年11月29日,则该程序的输出为2004年12月1日。
时间: 2023-05-29 21:02:37 浏览: 47
思路:
1. 判断输入日期是否为该月的最后一天,如果是,则需要进位到下一个月。
2. 如果不是该月最后一天,则直接将day加1。
3. 需要特判2月份的情况,如果是闰年且月份为2,则该月份最多有29天,否则最多只有28天。
4. 其他月份根据天数的不同处理即可。
代码如下:
相关问题
用C语言设计程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以计算该输入日期在日历上后天的日期。例如,输入为2004年11月29日,则该程序的输出为2004年12月1日。
```
#include <stdio.h>
int main() {
int month, day, year;
printf("请输入日期,格式为month/day/year:");
scanf("%d/%d/%d", &month, &day, &year);
// 判断输入日期是否合法
if (month < 1 || month > 12 || day < 1 || day > 31) {
printf("输入日期不合法\n");
return 0;
}
// 判断输入年份是否为闰年
int is_leap_year = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
// 计算后天的日期
day += 2;
if ((month == 4 || month == 6 || month == 9 || month == 11) && day > 30) {
day -= 30;
month++;
} else if (month == 2 && ((is_leap_year && day > 29) || (!is_leap_year && day > 28))) {
day -= is_leap_year ? 29 : 28;
month++;
} else if (day > 31) {
day -= 31;
month++;
}
if (month > 12) {
month -= 12;
year++;
}
printf("%d年%d月%d日的后天是:%d年%d月%d日\n", year, month, day, year, month, day);
return 0;
}
```
用C语言写一个程序有三个输入变量 month、day、year(month 、 day 和 year 均为整数值,并且满足:1≤month≤12 和 1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期 在日历上隔一天的日期
#include <stdio.h>
int main()
{
int month, day, year;
printf("请输入月份、日期、年份:\n");
scanf("%d%d%d", &month, &day, &year);
// 判断日期是否合法
if (month < 1 || month > 12 || day < 1 || day > 31) {
printf("输入的日期不合法!\n");
return 0;
}
// 判断该月份的天数
int daysInMonth;
switch (month) {
case 2: // 二月份
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
daysInMonth = 29;
} else {
daysInMonth = 28;
}
break;
case 4: // 四月份
case 6: // 六月份
case 9: // 九月份
case 11: // 十一月份
daysInMonth = 30;
break;
default: // 其他月份
daysInMonth = 31;
break;
}
// 判断日期是否超出该月份天数
if (day > daysInMonth) {
printf("输入的日期不合法!\n");
return 0;
}
// 计算隔一天的日期
day++;
if (day > daysInMonth) {
day = 1;
month++;
if (month > 12) {
month = 1;
year++;
}
}
printf("隔一天的日期为:%d年%d月%d日\n", year, month, day);
return 0;
}
阅读全文