#include
#include
void main(void)
{
int a,b,c,d,e,s=0;
printf("请输入要查询的年份:");
scanf("%d",&a);
b=2020-a;
c=b%4;
d=b/4;
e=365*3*d+366*d;
if(b!=0)
{
if(c!=0)
{
s=(7+b*(356%7));
if(s<0)
{
do
s=s+7;
while(s>0);
}
if(s>7)
{
do
s=s-7;
while(s<7);
}
}
if(c=0)
{
s=7+(e%7);
if(s<0)
{
do
s=s+7;
while(s>0);
}
if(s>7)
{
do
s=s-7;
while(s<7);
}
}
switch(s)
{
case 1:printf("%d年的3月1日是星期一\n",a);break;
case 2:printf("%d年的3月1日是星期二\n",a);break;
case 3:printf("%d年的3月1日是星期三\n",a);break;
case 4:printf("%d年的3月1日是星期四\n",a);break;
case 5:printf("%d年的3月1日是星期五\n",a);break;
case 6:printf("%d年的3月1日是星期六\n",a);break;
case 7:printf("%d年的3月1日是星期日\n",a);break;
}
}
else
printf("今年的3月1日是星期日\n");
system("pause");
}
if(s<0)
{
do
s=s+7;
while(s>0);
}
当s<0的时候,做一次s+7,之后如果还小于0,就不循环了。
if(s>7)
{
do
s=s-7;
while(s<7);
}
当s>7(同时小于14)的时候,s减掉7,那么循环成立了,于是就拼命减,负数也满足<7,直到下溢。
if(c=0)
=和==号也没分清楚。
总之不谈你程序的问题,基本语法都不会