C语言实现多个数运算的计算器
下面是一个用C语言实现的多个数运算的计算器程序,支持加、减、乘、除四种基本运算,并且可以连续输入多个数字进行运算。
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
// 函数声明
double add(double a, double b);
double subtract(double a, double b);
double multiply(double a, double b);
double divide(double a, double b);
void calculator();
int main() {
printf("欢迎使用多个数运算计算器\n");
printf("支持加(+)、减(-)、乘(*)、除(/)运算\n");
printf("输入'q'退出程序\n\n");
calculator();
return 0;
}
// 加法函数
double add(double a, double b) {
return a + b;
}
// 减法函数
double subtract(double a, double b) {
return a - b;
}
// 乘法函数
double multiply(double a, double b) {
return a * b;
}
// 除法函数
double divide(double a, double b) {
if (b == 0) {
printf("错误:除数不能为零!\n");
return 0;
}
return a / b;
}
// 计算器主函数
void calculator() {
double result = 0;
double num;
char op;
char input[100];
int first_number = 1;
while (1) {
printf("当前结果: %.2f\n", result);
// 获取第一个数字或操作符
if (first_number) {
printf("请输入第一个数字: ");
if (fgets(input, sizeof(input), stdin) == NULL) {
break; // 读取失败或EOF
}
// 检查是否要退出
if (input[0] == 'q' || input[0] == 'Q') {
break;
}
// 尝试转换为数字
if (sscanf(input, "%lf", &num) != 1) {
printf("无效输入,请重新输入数字,\n");
continue;
}
result = num;
first_number = 0;
continue;
}
// 获取操作符
printf("请输入操作符(+, -, *, /)或'q'退出: ");
if (fgets(input, sizeof(input), stdin) == NULL) {
break; // 读取失败或EOF
}
op = input[0];
// 检查是否要退出
if (op == 'q' || op == 'Q') {
break;
}
// 检查操作符是否有效
if (op != '+' && op != '-' && op != '*' && op != '/') {
printf("无效操作符,请重新输入,\n");
continue;
}
// 获取下一个数字
printf("请输入下一个数字: ");
if (fgets(input, sizeof(input), stdin) == NULL) {
break; // 读取失败或EOF
}
// 尝试转换为数字
if (sscanf(input, "%lf", &num) != 1) {
printf("无效输入,请重新输入数字,\n");
continue;
}
// 根据操作符执行相应运算
switch (op) {
case '+':
result = add(result, num);
break;
case '-':
result = subtract(result, num);
break;
case '*':
result = multiply(result, num);
break;
case '/':
result = divide(result, num);
break;
}
}
printf("最终结果: %.2f\n", result);
printf("感谢使用计算器,再见!\n");
}
程序功能说明
- 连续运算:可以连续输入多个数字和操作符进行计算
- 支持操作:加(+)、减(-)、乘(*)、除(/)
- 错误处理:
- 处理除数为零的情况
- 处理无效输入
- 退出功能:输入'q'可以退出程序
- 显示当前结果:每次运算后显示当前结果
使用示例
欢迎使用多个数运算计算器
支持加(+)、减(-)、乘(*)、除(/)运算
输入'q'退出程序
请输入第一个数字: 10
当前结果: 10.00
请输入操作符(+, -, *, /)或'q'退出: +
请输入下一个数字: 5
当前结果: 15.00
请输入操作符(+, -, *, /)或'q'退出: *
请输入下一个数字: 2
当前结果: 30.00
请输入操作符(+, -, *, /)或'q'退出: -
请输入下一个数字: 8
当前结果: 22.00
请输入操作符(+, -, *, /)或'q'退出: q
最终结果: 22.00
感谢使用计算器,再见!
扩展建议
如果需要更复杂的功能,可以考虑:
- 添加括号支持以改变运算优先级
- 添加更多数学函数(如幂运算、开方等)
- 添加内存功能(存储和调用结果)
- 添加历史记录功能
这个程序使用了基本的C语言特性,适合初学者学习和理解计算器的工作原理。
