69,382
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
int main()
{
int year,month,week,j,a,b,c,y,a1,a2,a3;
scanf("%d",&year);
for(month=3;month<=14;month++)
{
if(month==13)
year--;
c=year/100;
y=year-c*100;
a=y-2*c+12;
a1=c/4;
a2=y/4;
a3=26*(month+1)/10;
week=a1+a2+a3+a;
if(week<0){ week+=7;}
week%=7;
if(week==5)
{
if(month==13 || month==14)
printf("%d-%d-13\n",year + 1,month - 12);
else
printf("%d-%d-13\n",year,month);
}
}
return 0;
}
但是我改了仍然不行啊,为什么呢?[/quote]
#include<stdio.h>
int main() {
int year,month,week,j,a,b,c,y,a1,a2,a3;
scanf("%d",&year);
for(month=3; month<=14; month++) {
if(month==13 || month==14)
year--; //是1、2月份则计算时年份-1
c=year/100;
y=year-c*100;
a=y-2*c+12;
a1=c/4;
a2=y/4;
a3=26*(month+1)/10;
week=a1+a2+a3+a;
if(week<0) {
week+=7;
}
week%=7;
if(month==13|| month==14)
year++; // 算完再加回来,恢复原状。
if(week==5) {
//正确的month用 month>12?month-12:month即可,不要直接去修改。
printf("%d-%d-13\n",year,month>12?month-12:month);
}
}
return 0;
}