C语言编程,求某年某月的天数(不用switch语句不行吗?) 我的程序无论是输入何值都是31天。

2024-11-15 09:19:00
推荐回答(4个)
回答1:

你的条件判断写得有问题,用//注释修改了,结果如下:

#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");

}

回答2:

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");
}

回答3:

=和==在不注意的时候弄混了
if条件的=全部替换成==就对了

回答4:

month=1||3||5||7||8||10||12
你不觉得这个有问题吗.............
month==1||month==3||month==5||month==7||month==8||month==10||month==12