#include <stdio.h>
int leapyear[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int commonyear[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int year,month,day;
int isLeapYear(int year)
{
if(((year%4==0)&&(year%100!=0))||(year%400==0)) return 1;
else return 0;
}
int getWeekDay(int year,int month,int day)
{
int sum=0,i=0;
//年份的天数:当前年份的前一年离1900年有多少天。
for(i=1900;i<year;i++)
{
if(isLeapYear(i)==1) sum+=366;
else sum+=365;
}
//月份的天数:当前月份的前一个月为该年的多少天。
for(i=0;i<month-1;i++)//数组要-1。
{
if (isLeapYear(year)==1) sum+=leapyear[i];
else sum+=commonyear[i];
}
//某天的天数:当前天为该月的多少天。
if (isLeapYear(year)==1) sum=sum-(leapyear[i]-day);
else sum=sum-(commonyear[i]-day);
return sum;
}
int main()
{
printf("请输入日期: 年 月 日\n");
scanf("%d%d%d\n",year,month,day);
switch(getWeekDay(year,month,day)%7)
{
case 1:printf("星期一\n");break;
case 2:printf("星期二\n");break;
case 3:printf("星期三\n");break;
case 4:printf("星期四\n");break;
case 5:printf("星期五\n");break;
case 6:printf("星期六\n");break;
default:printf("星期天\n");
}
return 0;
}
我的代码如上,但是调试的时候出现如下问题:
![](https://i-blog.csdnimg.cn/blog_migrate/aab7b28b5090db4d0f2d262df037bbc6.png)
输入年月日之后也没有正常执行输出星期,请问应该如何解决?