大家好!我正在解决 S.Kochan 的“用 C 编程”一书的练习部分中的一个问题,实际上陷入了这个问题,这表明在 C 中创建一个简单的计算器,它将中间结果保存在所谓的“累加器”中。因此,当您输入一个值,然后按“S”时 - 应该保存该值,并且应该使用该值执行所有进一步的操作。当您按“E”时 - 程序应该结束,当您按任何基本算术符号时,应该执行适当的操作等。我正在使用永恒的 for 循环和 switch-case 运算符,但出了点问题。值不是正确显示<以便算术运算。
这是我的代码
#include <stdio.h>
int main(void)
{
float accumulator, value;
char operator;
printf("Calculator\nType in your value:\n");
for(;;)
{
scanf("%f %c %f", &accumulator, &operator, &value);
switch(operator)
{
case 'S':
printf("=%.2f\n", accumulator);
break;
case 'E':
printf("=%.2f\nEnd of programm");
break;
case '+':
accumulator=accumulator+value;
printf("=%.2f", accumulator);
break;
case '-':
accumulator=accumulator-value;
printf("=%.2f", accumulator);
break;
case '*':
accumulator=accumulator*value;
printf("=%.2f", accumulator);
break;
case '/':
if(value==0)
printf("You can not divide by zero");
else
accumulator=accumulator/value;
printf("=%.2f", accumulator);
break;
default:
printf("Unknown symbol");
}
}
return 0;
}
我究竟做错了什么?PS对不起我的英语不好)