我是C語言的初學者,在學校學習課程。那麼我正在做一個項目,我們必須製作一個控制檯計算器。我完成了任務並且工作正常,但是我想添加另一個「如果有效的等式然後打印出」的小片段,而不是不斷地在每種情況下輸入它。 這似乎工作,當「ValidEqn」等於一。但是,如果設置了一個無效的等式,並且它默認爲「default:」大小寫,並且「ValidEqn」設置爲「0」,它仍會處理if語句之間的「printf」。有人能解釋爲什麼嗎?以及我的代碼中有哪些缺陷。我非常感謝。C(控制檯計算器)如果先前設置爲false,仍然處理語句
#include <stdio.h>
int main(void)
{
float num1, num2, answer = 0.0f;
char op;
int ValidEqn = 1;
printf("Operators: (+, -, * or x,/or \ or %)\n");
printf("Instruction: Please enter a number, operator, number\n");
printf("\nEquation: ");
scanf("%f %c %f", &num1, &op, &num2);
switch (op)
{
case '*' :
case 'x':
answer = num1 * num2;
break;
case '+':
answer = num1 + num2;
break;
case '-':
answer = num1 - num2;
break;
case '/' :
case '\\':
case '%':
answer = num1/num2;
break;
default:
ValidEqn = 0;
printf("You did not enter a proper equation");
break;
}
if (ValidEqn = 1)
{
printf("The answer of %.0f %c %.0f is %.0f\n", num1, op, num2, answer);
}
return(0);
}
謝謝你解釋它! – YourFriend