我的代码需要执行3x2表中仅有的一种情况,即男性140到160厘米:矮,161到180厘米:中等;181到199厘米:高大;女性120到140厘米:矮,141到165厘米:中等和166到180厘米:高大。
例如,如果我输入153厘米的女性,输出只需是中等。但现在我的代码在输入153厘米女性时,最后会同时输出中等和高大。
如何编辑这个代码,以便仅针对两种组合情况(年龄和长度)中的一个情况,并且长度选项中的三个选项之一;例如,如果我输入153厘米的女性,它将需要仅显示中等。
例如,如果我输入153厘米的女性,输出只需是中等。但现在我的代码在输入153厘米女性时,最后会同时输出中等和高大。
如何编辑这个代码,以便仅针对两种组合情况(年龄和长度)中的一个情况,并且长度选项中的三个选项之一;例如,如果我输入153厘米的女性,它将需要仅显示中等。
#include <stdio.h>
int main()
{
int length;
char gender;
printf("enter gender: ");
scanf("%c", &gender);
printf("enter length: ");
scanf("%d", &length);
if (gender == 'M' || 'm') {
if (length <= 140 && length <= 160 ) {
printf ("short");
}
if (length <= 161 && length <= 180 ) {
printf ("medium");
}
if (length <= 181 && length <= 199 ) {
printf ("tall");
}
if (gender == 'W' || gender == 'w') {
if (length <= 120 || length <=140) {
printf("short");
if (length <=141 || length <=165) {
printf ("medium");
if (length <=166 || length <=180) {
printf ("tall");}
else {
printf("error");
}
}
}
}
}
return 0;
}
if (gender == 'M' || 'm')
的条件始终为真。您是否想表达的是if (gender == 'M' || gender == 'm')
?而且if (gender == 'W' || gender == 'w')
将永远不会为真,因为它在检查性别为男性的if
内部。此外,所有的length
条件都是错误的。length <= 140 && length <= 160
应该改为length >= 140 && length <= 160
等。 - Spikatrixif(gender == 'M' || gender == 'm') { /* length checks */ } else if(gender == 'W' || gender == 'w') { /* length checks */ }
- Spikatrix