某一天是一年的哪一天怎么运行错了

img


运行结果怎么是几万天,我晕了,有没有教一下的天才,看了跟多教程都不知道错哪了

img

#include<stdio.h>
int main()
{
int y,m,d,n=0;
int c,b=0;
scanf("%d %d %d",&y,&m,&d);
while(b<m){
switch(b){
case 0:c=d;break;
case 1:c=31;break;
case 2:c=29;break;
case 3:c=31;break;
case 4:c=30;break;
case 5:c=31;break;
case 6:c=30;break;
case 7:c=31;break;
case 8:c=31;break;
case 9:c=30;break;
case 10:c=31;break;
case 11:c=30;break;
case 12:c=31;break;
}
n=n+c;
b++;
}
if((y%400==0||(y%4==0&&y%100!=0))&&m>2) //是闰年且月份大于2方加一
n++;
printf("%d-%d-%d是第%d天\n",y,m,d,n);
return 0;
}