Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中的嵌套if语句_C_If Statement - Fatal编程技术网

C语言中的嵌套if语句

C语言中的嵌套if语句,c,if-statement,C,If Statement,我的代码只需要执行3x2表中的一个case路径,即:;男性140至160厘米:短,161至180厘米:中等;181至199厘米:高,女性120至140厘米:短,141至165厘米:中等,166至180厘米:高 例如,如果我输入153厘米女性,输出只需要中等。但现在我的代码给出了输出,如果我在最后输入153厘米的女性,中等和高 到目前为止,我如何编辑这段代码,使其只针对两种组合(年龄和长度)的一种情况执行,以及针对长度的三个选项中的一个;例如,如果我输入153厘米的女性,它将需要说只有中等 #in

我的代码只需要执行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;
}
#包括
int main()
{
整数长度;
性别;
printf(“输入性别:”);
scanf(“%c”和性别);
printf(“输入长度:”);
扫描频率(“%d”和长度);
如果(性别='M'| |'M'){

如果(长度用于以下行,则长度必须大于等于161。 请检查类似的线路

   if (length <= 161 && length <= 180 ) {

        printf ("medium");

    }

if(length您需要在独占范围内比较长度。以下是代码:

#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;

}
#包括
int main()
{
整数长度;
性别;
printf(“输入性别:”);
scanf(“%c”和性别);
printf(“输入长度:”);
扫描频率(“%d”和长度);
如果(性别='M'| |性别='M'){

如果你犯了很多错误,没问题。熟能生巧。。。! 将您的代码与我更改的代码进行比较..并意识到错误。代码中的注释给出了解释

#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;
 }
#包括
int main()
{
整数长度;
性别;
printf(“输入性别:”);
scanf(“%c”和性别);
printf(“输入长度:”);
扫描频率(“%d”和长度);
if(gender='M'| | gender='M'){//应在或的两侧进行比较

if(length>=140&&length=161&&length=181&&length=120&&length=141&&length=166&&length
if(gender='M'|| M')
总是正确的。你的意思是
if(gender='M'| gender='M')
if(gender='W'| gender='W'))
永远不会是真的,因为它在检查性别是否为男性的
if
中。而且,你所有的
length
条件都是错误的。
length=140&&length啊,是的,那一行的打字错误,应该是(gender='M'| gender='M')对于大写/小写。谢谢。现在尝试这种方式。仍然不起作用,我应该如何区分男女方块,我正在使用((甚至在方块内部)
if(gender='M'| | gender='M'){/*length checks*/}else if(gender='W'| | gender='W'){/*length checks*/}
男式挡块正常,但女式挡块仍有问题输出为:输入性别:w输入长度:142也可以尝试从Cype库中尝试TopPor(性别)或ToWar(性别)函数:谢谢,我如何添加错误的字符输入,它不是m/m还是W/W?我的意思是用户只能输入M/M或W/W,否则程序会说错误。reedx8@kadir在错误消息中添加一个else条件。可能让用户在所有条件下使用do while循环重复直到用户输入w或m.So,否则{printf(“此处的错误消息”)}