输入某年某月某日,判断这一天是这一年的第几天? 为什么我编的少了3天呢 求解???
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,year,month,day,sum=0,days,sumday;
printf("请输入year,month,day:");
scanf("%d%d%d",&year,&month,&day);
for(i=1;i<month;i++)
{
switch(i)
{
case 1 :case 3: case 5 :case 7: case 8:case 10:case 12:days=31;
case 4:case 6 :case 9:case 11:days=30;
case 2:
if(year%400==0||(year%4==0&&year%100!=0))
days=29;
else
days=28;
}
sum=days+sum;
}
sumday=sum+day;
printf("%d",sumday);
}
[解决办法]
case 1 :case 3: case 5 :case 7: case 8:case 10:case 12:days=31;break;
case 4:case 6 :case 9:case 11:days=30;break;
[解决办法]
你的switch 语句没有跳出,每次都是循环到最后,你应该在days=31;berak; days=30;break;