Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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程序打印错误消息|逻辑运算符问题?_C - Fatal编程技术网

C程序打印错误消息|逻辑运算符问题?

C程序打印错误消息|逻辑运算符问题?,c,C,我对C语言的编码还不熟悉,我正在尝试编写一个程序,如果你的年龄在15岁或15岁以上,并且你的性别与男性相同,那么这个程序会打印出“你可以输入”的信息。请看看我下面有什么。当您输入15岁或15岁以上,性别为男性时,程序会打印错误的消息。我想这可能是我的逻辑运算符的问题,但我不太明白为什么。你能帮忙吗 #include <stdio.h> #include <unistd.h> int main(void) { int age; char gen;

我对C语言的编码还不熟悉,我正在尝试编写一个程序,如果你的年龄在15岁或15岁以上,并且你的性别与男性相同,那么这个程序会打印出“你可以输入”的信息。请看看我下面有什么。当您输入15岁或15岁以上,性别为男性时,程序会打印错误的消息。我想这可能是我的逻辑运算符的问题,但我不太明白为什么。你能帮忙吗

#include <stdio.h>
#include <unistd.h>

int main(void) 
{
    int age;
    char gen;

    printf("How old are you?\n");
    scanf("%d", &age);

    printf("What is your gender? (m/f) \n");
    scanf("%s", &gen);

    if(age >= 15 && gen == 'm')
    {
         write(1, "You man enter\n", 15);
    }

    if(age < 14 || gen == 'f')
    {
        write(1, "No entry\n", 9);
    }

    return 0;
}
更改此项:

scanf("%s", &gen);
为此:

scanf(" %c", &gen);
因为gen是一个字符,而不是字符串

请注意我在字符格式说明符之前留下的空格,该空格用于通知自动使用空格和特殊字符的方法,并将其删除,看看会发生什么。更多信息,请准备好我对此的初步反应。

更改此选项:

scanf("%s", &gen);
为此:

scanf(" %c", &gen);
因为gen是一个字符,而不是字符串

请注意我在字符格式说明符之前留下的空格,该空格用于通知自动使用空格和特殊字符的方法,并将其删除,看看会发生什么。更多信息,请准备好我对此的初步反应。

谢谢@gsamaras

#include <stdio.h>
#include <unistd.h>

int main(void)
{
    int age;
    char gen;

    printf("How old are you?\n");
    scanf("%d", &age); 

    printf("What is your gender? (m/f) \n");
    scanf(" %c", &gen);

    if(age >= 15 && gen == 'm')
    {
         write(1, "You may enter\n", 15);
    }

    if(age <= 14 || gen == 'f')
    {
        write(1, "No entry\n", 9);
    }

    return 0;
}
谢谢@gsamaras

#include <stdio.h>
#include <unistd.h>

int main(void)
{
    int age;
    char gen;

    printf("How old are you?\n");
    scanf("%d", &age); 

    printf("What is your gender? (m/f) \n");
    scanf(" %c", &gen);

    if(age >= 15 && gen == 'm')
    {
         write(1, "You may enter\n", 15);
    }

    if(age <= 14 || gen == 'f')
    {
        write(1, "No entry\n", 9);
    }

    return 0;
}