为什么case 3=59?而不是61?
理论上这个时候是不知道case3是59还是61的?
为什么这里直接赋值59?
理论上这个时候是不知道case3是59还是61的?
为什么这里直接赋值59?
2016-02-06
正确答案:
#include <stdio.h>
int main()
{
/* 定义需要计算的日期 */
int year = 2008;
int month = 10;
int day = 8;
int sum = 0;
int a = 30;
int b = month % 2;
int c, m, n, d;
if(month>1 && month<9)
{
switch(b)
{ case 0:
c = month / 2;
break;
case 1:
c = month / 2 + 1;
break;
}
n = year % 4;
switch(n)
{ case 0:
m = 29;
break;
default:
m = 28;
break;
}
sum = (month - 2) * a + c + m + day;
}
else if(month>=9 && month<12)
{
switch(b)
{ case 0:
c = month / 2;
d = 1;
break;
case 1:
c = month / 2 + 1;
d = 0 ;
break;
}
n = year % 4;
switch(n)
{ case 0:
m = 29;
break;
default:
m = 28;
break;
}
sum = (8 - 2) * a + c + m + day
+ (month - 8) * a + d;
}
printf("%d年%d月%d日是该年的第%d天", year, month, day, sum);
return 0;
}
举报