C语言中的程序逻辑运算符工作不正常
在prompt2函数中,我有两个if语句。第一个加法器将调用prompt2。当我按“x”或“x”时,为什么它仍然转到第一个“if”语句,然后打印,答案是..,即使按x,它也应该终止?基本上我想让它在按下“x”或“x”时,程序终止。而且我也不在main中,所以如何从非main的函数终止它呢?如果你需要更多的代码,我可以编辑,只要让我知道C语言中的程序逻辑运算符工作不正常,c,logic,exit,C,Logic,Exit,在prompt2函数中,我有两个if语句。第一个加法器将调用prompt2。当我按“x”或“x”时,为什么它仍然转到第一个“if”语句,然后打印,答案是..,即使按x,它也应该终止?基本上我想让它在按下“x”或“x”时,程序终止。而且我也不在main中,所以如何从非main的函数终止它呢?如果你需要更多的代码,我可以编辑,只要让我知道 int prompt2(int sum) { char choice; // what the user decides, continuing or n
int prompt2(int sum) {
char choice; // what the user decides, continuing or not
printf("\nBefore you continue, take a look at my number guess written down on paper.");
printf("\nPress 'D' to display the answer or 'X' to exit: " );
scanf("%c", &choice );
if ( choice == 'D' || 'd' ) {
printf("\nAnswer is %d", sum );
}
else if ( choice == 'X' || 'x' ) {
exit(0);
}
return 1;
}
int adder( int x, int y ) {
int sum = 0;
sum = x + y;
printf("new sum is %d\n", sum );
printf(" %d\n+%d\n----\n?", x, y ); // output appropriate line breaks and spacing for equation
prompt2(sum); // function that asks them if they want to see the answer
return sum;
}
在语句中,如果choice='D'| |'D',则D不等于零,因此计算结果为true。它应该是if choice='D'| | choice='D'。例如,您必须将此行更改为:if choice='D'| |'D'与if choice='D'| | choice='D'。
必须在每个| |或&&语句之后重写变量。if choice=='D'| |'D'->if choice=='D'| | choice=='D'。其他的如果也一样。啊!太谢谢你了,真不敢相信我没听懂。