#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()'來刷新輸入流。 –