你的条件判断写得有问题,用//注释修改了,结果如下:
#include
void main()
{
int year,month;
printf("please input a year and a month:");
scanf("%d%d",&year,&month);
if(month==1||month==3||month==5||month==7||month==8||month==10|| month==12)
//if (month=1||3||5||7||8||10||12)
printf("days=31");
else if(month==4||month==6||month==9||month==11)
//else if(month=4||6||9||11)
printf("days=30");
else if(month==2 && (((year%4==0)&&(year%100!=0))||year%400==0))
//闰年二月else if((year%4==0)&&((year%100)!=0)||year%400==0)
printf("days=29");
else
printf("days=28");
}
if (month=1||3||5||7||8||10||12)这样写的话,是把1||3||5||7||8||10||12的值赋给month。1||3||5||7||8||10||12的值为true,即为1,if (month=1||3||5||7||8||10||12)这句话相当于if(1),当然都是31天了。
#include
void main() {
int year, month;
printf("please input a year and a month:");
scanf("%d%d", &year, &month);
if (month == 1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)
printf("days=31");
else if (month == 4 || month==6 || month==9 || month==11)
printf("days=30");
else if ((year % 4 == 0) && ((year % 100) != 0) || year % 400 == 0)
printf("days=29");
else
printf("days=28");
}
=和==在不注意的时候弄混了
if条件的=全部替换成==就对了
month=1||3||5||7||8||10||12
你不觉得这个有问题吗.............
month==1||month==3||month==5||month==7||month==8||month==10||month==12