【发布时间】:2021-04-11 02:09:03
【问题描述】:
为什么这个代码不接受我设置它接受的字母?它应该接受 M、F、m 和 f,但它没有我缺少什么?太棒了
#include<stdio.h>
int main(){
char sexo;
sexo='A';
printf("== Entre com o sexo:\n");
while(sexo!='M'||sexo!='F'||sexo!='m'||sexo!='f'){
scanf(" %c ", &sexo);
if(sexo!='M'||sexo!='F'||sexo!='m'||sexo!='f'){
printf("Sexo invalido!Precisa ser 'M' ou 'F'.\n");
}
else{
return sexo;
}
}
sexo='A';
}
【问题讨论】:
-
您的意思是
&&而不是||??而且...scanf (" %c", &sexo)可以。格式字符串中不需要额外的尾随' '。 -
例如的反面
sexo == 'M' || sexo == 'F'是sexo != 'M' && sexo != 'F'。我建议你阅读De Morgan's laws。