用c语言编写一个能连续计算的模拟计算器,功能包括加、减、乘、除、乘方、阶层等。
时间: 2023-07-04 10:10:20 浏览: 235
好的,以下是一个简单的模拟计算器的代码实现,可以进行加、减、乘、除、乘方、阶乘等计算操作,并且支持连续计算:
```c
#include <stdio.h>
#include <math.h>
// 计算阶乘
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
double result = 0, num;
char op;
printf("请输入第一个数:");
scanf("%lf", &result);
while (1) {
printf("请输入运算符(+、-、*、/、^、!或q退出):");
scanf(" %c", &op);
if (op == 'q') {
break;
}
printf("请输入下一个数:");
scanf("%lf", &num);
switch (op) {
case '+':
result += num;
break;
case '-':
result -= num;
break;
case '*':
result *= num;
break;
case '/':
if (num == 0) {
printf("除数不能为0!\n");
continue;
}
result /= num;
break;
case '^':
result = pow(result, num);
break;
case '!':
if (result < 0) {
printf("负数没有阶乘!\n");
continue;
}
result = factorial((int)result);
break;
default:
printf("无效的运算符!\n");
continue;
}
printf("结果:%g\n", result);
}
return 0;
}
```
在这个程序中,我们首先定义了一个变量 `result` 作为当前计算的结果,用户输入第一个数后,将其赋值给 `result`。然后进入一个循环,每次循环中用户输入一个运算符和下一个数,根据运算符进行相应的运算,并将结果赋值给 `result`。如果用户输入的运算符是 'q',则退出循环,程序结束。
在实现运算符的处理时,我们使用了 `switch` 语句。对于加减乘除等基本运算,直接使用相应的运算符即可;对于乘方和阶乘,使用了 `math.h` 中的 `pow` 函数和自定义的 `factorial` 函数。需要注意的是,如果用户输入的下一个数为0且运算符为除法,则需要进行特殊处理,避免出现除数为0的错误。同时,如果用户想对负数进行阶乘计算,则需要提示错误信息。
这个模拟计算器的实现比较简单,还有很多可以完善的地方,例如可以增加对小数的支持,增加括号等高级运算。但是这个简单的实现已经可以满足基本的计算需求了。
阅读全文