#include <stdio.h>
int main()
{
int year = 2008;
int month = 8;
int day = 8;
int sum,F;
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
}
sum+=day;
if(year%4==0)
F=1;
else
F=0;
if(month>2)
sum++;
printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);
return 0;
}
闰年计算有问题,世纪年可以被4整除,但不是闰年,如2000
这里代码有问题:
if(month>2) sum++;
应该为:
if(month>2) sum+=F;
#include <stdio.h>
int main()
{
int year = 2008;
int month = 8;
int day = 8;
int sum,F;
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
}
sum+=day;
if(year%4==0)
F=1;
else
F=0;
if(month>2)
sum++;
printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);
return 0;
}
这代码是没错啊 你是想说逻辑错误?
楼主贴的应该不是完整的代码吧?
#include <stdio.h> int main() { int year = 2008; int month; int day = 8; int sum,F; printf("请输入数字(1-9):"); scanf("%d",&month) switch(month) { case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; } sum+=day; if(year%4==0) F=1; else F=0; if(month>2) sum++; printf("%d年%d月%d日是该年的第%d天",year,month,day,sum); return 0; }