【回复“菜菜niao”的帖子】你们哪个老师布置的作业啊,如果是初学的话很难完成,我花了点时间编了前两项功能的程序,第三项功能要打印的话算法比较复杂,很累人的我不编了,(以下是两个分程序,可以合并成一个的):
#include <stdio.h>
#include <string.h>
main()
{int year,month,day,c,w,m,y;
char d[10];
do
{
printf("Please enter(year,month,day)!");
scanf("%d%d%d",&year,&month,&day);
c=year/100;
y=year-(int)(year/100)*100;
m=month;
if(m<3)m=m+12;
w=y+(int)(y/4)+(int)(c/4)-2*c+(int)(26*(m+1)/10)+day-1;
switch(w%7)
{case 0:strcpy(d,"Sunday");break;
case 1:strcpy(d,"Monday");break;
case 2:strcpy(d,"Tuesday");break;
case 3:strcpy(d,"Wednesday");break;
case 4:strcpy(d,"Thursday");break;
case 5:strcpy(d,"Friday");break;
default:strcpy(d,"Saturday");
}
printf("%d/%d/%d is %s, do you continue(Y/N)",year,month,day,d);
}
while(getchar()=='Y'||getchar()=='y');
}
//你给的星期算法不对啊,我参考了蔡勒算法不过好像也不太对
#include <stdio.h>
main()
{int year;
do
{printf("Please enter year!");
scanf("%d",&year);
if((year%4==0&&year%100!=0)||(year%400==0))
printf("%d is a leap year ,do you continue(Y/N)?",year);
else
printf("%d is not a leap year ,do you continue(Y/N)?",year);
}
while(getchar()=='Y'||getchar()=='y');
}