#include <stdio.h>
int main()
{
char odd, even, answer;
int x = -16;
printf("Choose, even or odd?");
scanf("%c", &answer);
if (answer == odd)
{
while (x < 15)
{
x++;
if (!(x % 2 == 1) && !(x % 2 == -1))
continue;
printf("%d\n", x);
}
printf("Look! Odd numbers!\n");
return 0;
}
else if (answer == even)
{
while (x < 15)
{
x++;
if ((x % 2 == 1) && (x % 2 == -1))
continue;
printf("%d\n", x);
}
printf("Look! Even numbers!\n");
return 0;
}
else
{
printf("That's not a valid response");
return 0;
}
}
对不起,我是新手,遇到问题。c if或elseif boolean
输出始终是“其他”选项。
我在做错误的布尔if和else if?
'odd'未初始化。取决于你的编译器,它可能是用户几乎从不会输入的'\ 0',或者是一些垃圾,它会抛弃用户输入的内容。 –
是的,奇数,甚至有垃圾值。 –
避免使用'scanf'输入'char'值,而是使用'getchar()'。如果你使用'scanf',它可能需要额外的语句,比如'fflush(stdin)'或者一个虚拟的'getchar()'来刷新输入流。 –