c语言编写多部计算器,多个数字一起运算不考虑优先级
时间: 2024-10-07 10:02:02 浏览: 16
在 C 语言中,编写一个多部计算器可以采用结构体和函数来实现。由于你提到不考虑优先级,我们可以创建一个简单的命令解析程序,让用户输入算术表达式,然后逐个处理每个操作数和运算符。这里是一个简化的示例:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
char op; // 运算符
double num1, num2; // 操作数
} Calculator;
void calculate(Calculator *calc) {
switch(calc->op) {
case '+':
printf("Result: %.2f + %.2f = %.2f\n", calc->num1, calc->num2, calc->num1 + calc->num2);
break;
case '-':
printf("Result: %.2f - %.2f = %.2f\n", calc->num1, calc->num2, calc->num1 - calc->num2);
break;
case '*':
printf("Result: %.2f * %.2f = %.2f\n", calc->num1, calc->num2, calc->num1 * calc->num2);
break;
case '/':
if(calc->num2 != 0)
printf("Result: %.2f / %.2f = %.2f\n", calc->num1, calc->num2, calc->num1 / calc->num2);
else
printf("Error: Division by zero is not allowed.\n");
break;
default:
printf("Invalid operator.\n");
break;
}
}
int main() {
Calculator calc;
while(1) {
printf("Enter an operation (e.g., '1+2') or 'quit': ");
fgets(&calc, sizeof(calc), stdin); // 读取用户输入并忽略换行符
calc.op = getchar(); // 获取运算符
if(calc.op == 'q' || calc.op == 'Q')
break;
scanf("%lf %lf", &calc.num1, &calc.num2); // 输入两个数字
calculate(&calc);
}
return 0;
}
```
在这个示例中,程序会循环接收用户输入的操作,直到用户输入 "quit" 或者按 'q' 键退出。每输入一次操作,它都会解析出运算符和两个数字,然后直接计算结果。