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