天数问题,求第几天,输出结果有的错误,

问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
我想要达到的结果

```c++

#include
int main()
{ int a,b,c,d,k;
 while(scanf("%d-%d-%d",&a,&b,&c)!=EOF)
  { if(a%4==0&&a%100!=0&&)
       k=29;
    else k=28;
    switch(b)
     { case 1:d=k;break;
       case 2:d=31+k;break;
       case 3:d=31+k+c;break;
       case 4:d=31*2+c+k;break;
       case 5:d=31*2+30+c+k;break;
       case 6:d=31*3+30+c+k;break;
       case 7:d=31*3+30*2+c+k;break;
       case 8:d=31*4+30*2+c+k;break;
       case 9:d=31*5+30*2+c+k;break;
       case 10:d=31*5+30*3+c+k;break;
       case 11:d=31*6+30*3+c+k;break;
       case 12:d=31*6+30*4+c+k;break;
     }
     printf("%d\n",d);
  }
    return 0;
}

```

if(a%4==0&&a%100!=0 || a%400 == 0)
k=29;
else k=28
case 1不对啊,应该是d=c啊, 怎么等于k呢
case 2也不对,应该是d = 31+c啊