检测的时候大部分年份都对,单提交的时候有一个数据输出结果是错的,比如1900年1月1日应该星期一,而我的是星期六,找不到原因,求大神帮忙看一下~急~在线等!
以下是我的代码
#include <stdio.h>
int main ()
{
int y,m,d,c,w ;
scanf("%d%d%d",&y,&m,&d);
c=y/100-1;
if (m<=2)
{
y=y-1;m=m+12;
}
y=y%100;
w=y+y/4+c/4-2*c+(26*(m+1)/10)+d-1 ;
while(w<0)
w+=7;
if(c<=18)
w=w%7-1;
else
w = w%7;
switch(w)
{
case 1: printf("0\n"); break;
case 2: printf("1\n"); break;
case 3: printf("2\n"); break;
case 4: printf("3\n"); break;
case 5: printf("4\n"); break;
case 6: printf("5\n"); break;
case 0: printf("6\n"); break;
}
}
你的程序我试了一下,闰年的结果都错了。。。。不过还是谢谢你!
追答#include
int total_days(int,int,int);
main()
{
int year,month,day,days;
while(scanf("%d%d%d",&year,&month,&day)!=EOF)
{
if(year>=1 && month1 && d!=29 && (y%100==0 || (y%4==0 && y%100!=0)))
sum+=1;
return sum+d;
}
又写了个,你看看行不行
那1900年为什么会错呢?(⊙v⊙)。。
追答好像是这样的
需要把一月和二月看成是上一年的十三月和十四月
例如,1990 1 1换算成1989 13 1,就可以得到正确的结果。