我正在继续追求精通 C,我目前正在做一个练习,让我的基本计算器不断提示我输入两个操作数和一个运算符。如果运算符不是“+”,则会显示错误消息。现在,我遇到了一些问题。
- 当我输入“+”时,它会显示两次。我的代码中没有任何东西表明这会发生。
- 第一个操作数表现出同样的问题。我也不知道如何告诉我的代码我已经完成了输入。
- 第二个操作数很好,但我仍然不知道如何终止输入。
- 在它显示结果之后,它会正确循环返回,但在再次提示之前给我一条错误消息。
http://tinypic.com/r/34ew5cx/6
注意:我知道您使用 lf 来读取 scanf 中的双数,但由于某种原因 lf 对我不起作用,而 f 工作得很好,所以忽略 :)
感谢您的任何观察,以及有关如何格式化代码/在本网站上提问/如何解决此类问题的任何一般性建议。谢谢你的帮助!
int main () {
char mychar;
int a;
double op1;
double op2;
printf("Welcome to Andrew Hu's calculator program!\n"); //Greeting
while(1)
{ printf("Enter a mathematical operation to perform:\n");
scanf("%c", &mychar);
if(mychar == '+') //Valid Operators
a = 1;
else
a = 0;
if(a == 0) //Operator Checker, error if invalid
printf("\nError, not a valid operator\n");
else if(a == 1){
printf("%c\n", mychar),
printf("Enter OP1:\n"),
scanf("%f", &op1),
printf("%f\n", op1),
printf("Enter OP2:\n"),
scanf("%f\n", &op2),
printf("%f\n", op2),
printf("Result of %f %c %f = %f\n",
op1, mychar, op2, (op1 + op2) );
}
}