一段C程序,编译不能通过(error C2106: '=' : left operand must be l-value),求解!!
8180 点击·3 回帖
![]() | ![]() | |
![]() | #include"stdio.h" void main() { int year,month,day,days; int flag=1; do { printf("请输入一个日期,格式为2008-08-08:\n"); scanf("%d-%d-%d",&year,&month,&day); if((year<=0||month<=0||month>=12||day<=0)) flag=0; else { switch(month) { case 1:days=31;break; case 2:((year%4==0&&year%100!=0)||(year%400==0))==1?days=29:days=28;break; case 3:days=31;break; case 4:days=30;break; case 5:days=31;break; case 6:days=30;break; case 7:days=31;break; case 8:days=31;break; case 9:days=30;break; case 10:days=31;break; case 11:days=30;break; case 12:days=31;break; } if(day>days) flag=0; else flag=1; } if(flag==0) printf("日期输入格式有误!\n"); } while(flag==0); printf("%d-%d-%d是一个有效的日期!\n",year,month,day); } | |
![]() | ![]() |
![]() | ![]() | |
![]() | if语句改为if((year<=0||month<=0||day<=0)) case2语句改为case 2:days=((year%4==0&&year%100!=0)||(year%400==0))==1?29:28;break; 最好也把main函数改为int 再加个return 1; | |
![]() | ![]() |