用C语言设计程序:输入年和月份值,输出对应月份的天数,谁能帮我看看对错,谢谢!

#include<stdio.h>
void main()
{
float year,month,days;
printf("input year,month=?\n");
scanf("%d,%d",&year,&month);
switch(month);
{
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;
case 2: if((year%4==0)&&(year%100!=0)‖(year%400==0))
days=28;
else
days=29;
break;
default:printf("month is error \n");
}
printf("year=%d,month=%d,days=%d\n",year,month,days);
}
试了好几遍,编译显示case 不合法,有大神能帮忙看一下么?非常感谢!

#include<stdio.h>
void main()
{
/*float*/int year,month,days; /* 不用浮点数 */
printf("input year,month=?\n");
scanf("%d,%d",&year,&month);
switch(month)/*;*/ /*多了个分号*/
{
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;
case 2: if((year%4==0)&&(year%100!=0)||(year%400==0))
days=/*28*/29;/*闰年才29天*/
   else 
days=/*29*/28;
break;
default:printf("month is error \n");
}
printf("year=%d,month=%d,days=%d\n",year,month,days);
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-28
自己看看吧
#include<stdio.h>
int main()
{
    int year,month,days;
    printf("input year,month:\n");
    scanf("%d,%d",&year,&month);
    switch(month)
    {
    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;
    case 2: 
            if(((year%4==0)&&(year%400==0))||((year%4==0)&&(year%100!=0)))
                days=28;
            else 
                days=29;
    break;
    default:printf("month is error \n");
    }
    printf("year=%d,month=%d,days=%d\n",year,month,days);


    system("pause");
    return 0;
}

第2个回答  2015-03-28
break写错位置了,你应该按照顺序写。如果你月份输入5的话,只会打印1,3月份,然后跳出循环本回答被网友采纳
相似回答