C If语句省略了一个条件

C If语句省略了一个条件,c,C,我正在尝试用C语言创建一个程序,该程序接收任何日期并返回黄道带符号。我有一个函数,用来验证日期是否可行(天>月>月>月,如果月=x,第31天)| | |((Mes==4,6,9,11)和&(直径>30))|//Dia no mayor que 31。Si Mes es de 30,Dia no mayor que 30。 ((bisiesto==0)和&(Mes==2)和&(Dia>28))|///Si no es bisiesto febrero no mayor que 28。 ((bisi

我正在尝试用C语言创建一个程序,该程序接收任何日期并返回黄道带符号。我有一个函数,用来验证日期是否可行(天>月>月>月,如果月=x,第31天)| | |((Mes==4,6,9,11)和&(直径>30))|//Dia no mayor que 31。Si Mes es de 30,Dia no mayor que 30。 ((bisiesto==0)和&(Mes==2)和&(Dia>28))|///Si no es bisiesto febrero no mayor que 28。 ((bisiesto==1)和&(Mes==2)和&(Dia>29))//我是bisiesto febrero,没有29岁。 ) printf(“Esta fecha no es Valida”)//请解释一下,你的身体是怎样的。 其他的 返回aprovacion=1; } void fnFecha() {/*Adquiere la fecha del usuario*/ printf(“插图编号:”); scanf(“%d”、&Ano); printf(“插入符号:”); scanf(“%d”和“&Mes”); printf(“插入直径:”); 扫描频率(“%d”和直径); 返回; }
我想,你的问题出在

(Mes == 4,6,9,11)
你必须单独写下所有的条件,也许像这样

((Mes == 4) || (Mes == 6) || (Mes == 9) || (Mes ==11))
否则,根据

 ((Mes == 4), 6,9,11)
其中
(Mes==4)
产生
0
1
。接下来,根据
操作符属性

逗号运算符的左操作数作为空表达式计算;有一个 其求值与右操作数求值之间的序列点。然后右转 计算操作数;结果有其类型和值

最后,表达式变为
(11)
,这是
if
条件或逻辑运算符的
true



[@引自
C11
标准,第
章§6.5.17

第1点。请学着提供一份工作。第2点)请在示例代码中使用英语,以帮助uderstand更好。因此,基本上我应该将其设置为切换样式?@Samir,如果您愿意,可以。@ryancdotnet,请至少发布类似的内容。:-)@萨米尔:不客气。:-)顺便说一下,你可以考虑一个帮助你的答案。@ JuaCopopZa它的工作,事情是你不能这样做(MES = 4,3,2)没有工作多个值,并进行验证。
 ((Mes == 4), 6,9,11)