#include <stdio.h>
int main()
{
/* 定义需要计算的日期 */
int year = 2008;
int month = 8;
int day = 8;
int au=0;
int ad=1;
switch(ad)
{
case 1:au+=31;
case 2:au+=31;
case 3:au+=30;
case 4:au+=31;
case 5:au+=30;
case 6:au+=31;
case 7:if(year%400==0&&year%4==0)
{
au+=29;
}
else
{
au+=28;
}
case 8:au+=8;
default:printf("2008年8月8日是该年中的第%d天",au);
break;
}
你的这里是错的case 7:if(year%400==0&&year%4==0)。这是与,必须两边结果都是真才行,2008除400不是0,所以你的结果永远是else里的28天。还有闰年能被四百整除就一定能被4整除,你这个改成或||,或者只留下除4都可以。