这是写成一个 Date 类的形式,如需要不是类的形式,只要把类定义的相关语句删除,函数写成带参的,然后在主函数里调用就可以了,算法都一样的。修改如下,供参考:

程序代码:
#include <stdio.h>
int IsLeapYear(int y)
{
return ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0));
}
int DaysOfMonth(int y, int m)
{
int a[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
if (IsLeapYear(y) && m == 2) return a[m - 1] + 1;
return a[m - 1];
}
void Show(int year,int month,int day)
{
printf("%d %d %d\n", year, month, day);//年-月-日 格式
}
void IncOneDay(int *year,int *month,int *day)
{
if ((*day) == DaysOfMonth(*year, *month))
{
(*day) = 1;
if ((*month) == 12) {
(*month) = 1;
(*year)++;
}
else {
(*month)++;
}
}
else {
(*day)++;
}
}
int main()
{
int y, m, d;
printf("input\n");
scanf("%d%d%d", &y, &m, &d);
IncOneDay(&y, &m, &d);
printf("output\n");
Show(y, m, d);
return 0;
}
[此贴子已经被作者于2022-2-21 09:11编辑过]