为什么当输入数据为 n = 31 且 m = 2 时输出具有“正确”,而我设置了仅当 n <=29 时才应输出“正确”的条件?
#include <stdio.h>
#include <locale.h>
int main(void) {
setlocale(LC_ALL,"");
int n,m;
scanf("%d %d",&n,&m);
if ((m == 1 || 3 || 5 || 7 || 8 || 10 || 12) && (n <= 31)){
printf("correct");
}
else
if ((m == 4 || 6 || 9 || 11) && (n <=30)){
printf("correct");
}
else
if ((m == 2) && (n <=29)){
printf("correct");
}
return 0;
}
m == 1 || 3 || 5 || 7 || 8 || 10 || 12
总是正确的,因为 3 是正确的。很可能你的意思是。m == 1 || m == 3 || m == 5 || m == 7 ...