我的代码只需执行3x2表中的一个case路径,即:男140至160厘米:短,161至180厘米:中;身高181至199厘米;女性身高:120至140厘米:短;身高141至165厘米:中;身高166至180厘米。
例如,如果我输入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;
}
答案 0 :(得分:1)
对于以下几行,其长度必须为> = 161。 请为此检查类似的行。
if (length <= 161 && length <= 180 ) {
printf ("medium");
}
答案 1 :(得分:1)
kadir您犯了很多错误,没问题。实践使一个男人变得完美……! 比较您的代码和我更改的代码..并发现错误。在代码中以注释的形式给出解释。
#include<stdio.h>
int main()
{
int length;
char gender;
printf("enter gender: ");
scanf("%c", &gender);
printf("enter length: ");
scanf("%d", &length);
if (gender == 'M' ||gender == 'm') { //comparison should be done in both sides of or
if (length >= 140 && length <= 160 ) {
printf ("short");
}
else if (length >= 161 && length <= 180 ) {
printf ("medium");
}
else if (length >= 181 && length <= 199 ) {
printf ("tall");
}
}
else if (gender == 'W' || gender == 'w') {
if (length >= 120 && length <=140) {
printf("short");
}
else if (length >=141 && length <=165) { // & should be used.
printf ("medium");
}
else if (length >=166 && length <=180) {
printf ("tall");}
else { /* if you are using else simply , it corresponds to the last if not all the if's in front so try using if else .*/
printf("error");
}
}
return 0;
}
祝你好运
答案 2 :(得分:0)
您需要在专用范围内比较长度。这是代码:
#include <stdio.h>
int main()
{
int length;
char gender;
printf("enter gender: ");
scanf("%c", &gender);
printf("enter length: ");
scanf("%d", &length);
if (gender == 'M' || gender == 'm'){
if (length <= 160 )
printf ("short\n");
if (161 <= length && length <= 180)
printf ("medium\n");
if (181 <= length && length <= 199)
printf ("tall\n");
}
if (gender == 'W' || gender == 'w'){
if (length <= 140)
printf ("short\n");
if (141 <= length && length <= 165)
printf ("medium\n");
if (166 <= length && length <= 180)
printf ("tall\n");
if(length>=180)
printf("error \n");
}
else if(gender != 'm'|| gender!='M'|| gender!='w'||gender!='W')
printf("error");
return 0;
}