慕婉清5674456
2016-03-11 13:50
int sum;
switch(month) /*对月份进行情况讨论
{
case 1;sum = 0+day;break;
case 2;sum = 31+day;break;
case 3;sum = 31+28+day;break;
case 4;sum = 31+28+31+day;break;
case 5;sum = 31+28+31+30+day;break;
case 6;sum = 31+28+31+30+31+day;break;
case 7;sum = 31+28+31+30+31+30+day;break;
case 8;sum = 31+28+31+30+31+30+31+day;break;
case 9;sum = 31+28+31+30+31+30+31+31+day;break;
case 10;sum = 31+28+31+30+31+30+31+31+30+day;break;
case 11;sum = 31+28+31+30+31+30+31+31+30+31+day;break;
case 12;sum = 31+28+31+30+31+30+31+31+30+31+30+day;break;
default:printf("一年当中只有12个月哦");break;
}
sum = sum+day;
if(year%4 == 0)
{
if(month < 3)
{
printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);
}
printf("%d年%d月%d日是该年的第%d天",year,month,day,sum+1);
}
else
{
printf(%d年%d月%d日是该年的第%d天",year,month,day,sum);
}
case X: 后面是冒号不是分号。
if(year%4 == 0)
{
if(month < 3)
{
printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);
}
else // 这儿掉了else 补上
{
printf("%d年%d月%d日是该年的第%d天",year,month,day,sum+1);
}
}
else
{
printf(%d年%d月%d日是该年的第%d天",year,month,day,sum);
}
首先,switch中已经+day了,为啥还要sum=sum+day;
其次,闰年并不是单纯的除以4来计算。
这是两个主要问题,其他问题就是程序健壮性的问题了,比如day>31等。
C语言入门
926023 学习 · 20793 问题
相似问题