#include <stdio.h>
#include <stdlib.h>
int Isleap(int year);
int monthdays[2][13]={{0,31,28,31,30,31,30,31,30,31,30,31,30},{0,31,29,31,30,31,30,31,30,31,30,31,30}};
int main(void)
{ int year,week,day;
printf("输入年月日\n");
scanf("%d %d %d\n",&year,&week,&day);
int sum=0;
for(int i=1;i<year;i++)
{if(Isleap(i))
sum+=366%7;
else
sum+=365%7;
}
int k=sum%7;//year-1年12月最后一天是星期几
int kkk=(week-1)*7+day-k;
int m=1;
int leap=0;
if (Isleap(year))
leap=1;
while(kkk>monthdays[leap][m])
{kkk-=monthdays[leap][m];
m++;}
printf("%d年的%d月%d日",year,m,kkk);
system("PAUSE");
return 0;
}
int Isleap(int y)
{return y%400==0||(y%4==0&&y%100!=0);
}
运行结果:
为什么 要多输入一个字符 才能继续运行程序??
我真是个大 沙比
这么个简单的问题 弄了一下午
就这
scanf("%d %d %d\n",&year,&week,&day);//输入为嘛加换行符!
scanf("%d %d %d",&year,&week,&day);
运行如下: