水题 ACM 培训课件上写的很 详细 但是我还是犯错了 输出时他要求要对齐,不足的要在前面补0,没注意因应用printf(“%02d”,X);
#include <iostream>
#include <stdio.h>
using namespace std;
char week[7][10]={"Saturday","Sunday","Monday","Tuesday","Wednesday",
"Thursday","Friday"};
int month[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,
31,29,31,30,31,30,31,31,30,31,30,31};
int yeard[2]={365,366};
int yeartype(int y)
{
if (y%4!=0 ||(y%100==0 && y%400!=0))
return 0;
return 1;
}
int main()
{
int n,year,mm,day,w;
while(scanf("%d",&n)&&n!=-1)
{
w = n % 7;
for(year = 2000;n>=yeard[yeartype(year)];year++)
n -= yeard[yeartype(year)];
for(mm=0;n>=month[yeartype(year)][mm];mm++)
n -= month[yeartype(year)][mm];
printf("%d-%02d-%02d %s\n",year,mm+1,n+1,week[w]);
}
return 0;
}