c语言用函数的递归调用实现加减乘除的计算器功能
时间: 2023-11-30 08:03:44 浏览: 144
可以通过递归调用实现加减乘除的计算器功能。具体实现方法如下:
```c
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
int multiply(int a, int b) {
return a * b;
}
int divide(int a, int b) {
if (b == 0) {
printf("Error: division by zero\n");
return 0;
}
return a / b;
}
int calculator() {
int x, y;
char op;
printf("Enter an expression (e.g. 1 + 2) or 'q' to quit: ");
scanf("%d %c %d", &x, &op, &y);
if (op == '+') {
return add(x, y);
} else if (op == '-') {
return subtract(x, y);
} else if (op == '*') {
return multiply(x, y);
} else if (op == '/') {
return divide(x, y);
} else if (op == 'q') {
return 0;
} else {
printf("Error: invalid operator\n");
return calculator();
}
}
int main() {
int result;
while ((result = calculator())) {
printf("Result: %d\n", result);
}
printf("Goodbye!\n");
return 0;
}
```
在上面的代码中,我们定义了四个函数来分别实现加、减、乘、除运算,然后通过递归调用来实现连续进行多个运算的功能。在 `calculator()` 函数中,首先获取用户输入的表达式,然后通过判断运算符,调用对应的函数来进行运算。如果用户输入了不合法的运算符,会输出错误信息并重新调用 `calculator()` 函数。如果用户输入了 'q',则会退出程序。在 `main()` 函数中,通过循环调用 `calculator()` 函数来实现连续计算的功能。
阅读全文