用C写的日历,有个问题,当输入周六时运行结果一月只有30天。
求高手修改这个程序,当输入周六时输出的一月只有30天是怎么回事?#include"stdio.h"
int shuchu(int m, int a);
int main()
{
int year, date;
int i = 0;
int data[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
printf("请输入要查找的是哪一年: ");
scanf("%d", &year);
printf("请输入该年的一月一日是星期几(星期一则输入1,其他以此类推):");
scanf("%d", &date);
date++;
date = date % 7;
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
{
data[1] = data[1] + 1;
}
while (i < 12)
{
printf(" %d 月\n", i + 1);
date = shuchu(data[i], date);
i++;
}
return (0);
}
int shuchu(int m, int date)
{
int i, a = date;
int j = 1;
printf(" 日 一 二 三 四 五 六\n\n");
for (i = 1; i <= m + a - 1; i++)
{
if (i < a)
{
printf(" ");
}
else
{
printf("%5d", j);
if (i % 7 == 0)
{
printf("\n");
}
j++;
}
}
printf("\n\n\n");
if ((m + a) % 7 == 0)
{
return ((m + a - 1) % 7 + 1);
}
else
{
return ((m + a) % 7);
}
}