c 语言改错

问题描述:

c 语言改错
#include "stdio.h"
void main()
{int a,b,year,day,month;
scanf("%d%d%d",&year,&month,&day);
switch(month)
{case 1:month=0;break;
case 2:month=31;break;
case 3:month=59;break;
case 4:month=90;break;
case 5:month=120;break;
case 6:month=151;break;
case 7:month=181;break;
case 8:month=212;break;
case 9:month=243;break;
case 10:month=273;break;
case 11:month=304;break;
case 12:month=334;break;
}
day+=month;
if(year%100==0)
{if (year%400==0)
printf("这一天是一年中的第%d天.",day++);
}
else if(year%4==0&&month>59) {a=day+month+1&& printf("这一天是一年中的第%d天.",day++);}
printf("这一天是一年中的第%d天.",day);
}
我求的是输入一年的某月某日,求这天是这年中的第几天.
可是我输入2000年的3月1日,总是输出“这一天是一年中的第六十天”,请你们看看那里错了啊!
忘了,这句a=day+month+1&& 没有
我已经自己解决了,呵呵,看了看我的程序有点乱,现在才理清头绪,留个地址吧,呵呵,以后还望大家多多指教.

那是因为楼主判断的逻辑弄乱了
我这就讲下思路吧,实践部分留给楼主
不行的话,我在改
case语句结束后
判断 if month>59(到三月了)
{ 再判断是否是 if 闰年,是day++ }
输出day