设计一个简单的计算器,可以进行加减乘除运算,用C语言解决
时间: 2024-12-11 12:24:14 浏览: 31
设计一个简单的命令行计算器,我们可以在C语言中创建一个结构体表示操作数,一个函数处理用户输入并进行相应的计算。以下是基本的步骤:
1. **数据结构**:
首先,我们需要一个结构体`Operation`,包含两个double类型的变量表示操作数和一个char类型的变量代表运算符。
```c
typedef struct {
double num1;
double num2;
char operator_;
} Operation;
```
2. **主函数**:
创建一个主函数`main()`,接收用户的输入,解析成`Operation`结构,并调用计算函数`calculate()`。
```c
#include <stdio.h>
#include <stdlib.h>
// 函数声明
double calculate(Operation op);
int main() {
// 用户输入
printf("请输入第一个数字:");
double num1 = atof(stdin.readline()); // 使用getline获取字符串并转换为double
printf("请输入运算符 (+, -, *, /):");
char operatorInput[3];
fgets(operatorInput, sizeof(operatorInput), stdin); // 获取运算符,忽略换行符
operatorInput[strlen(operatorInput)-1] = '\0'; // 去掉末尾的'\n'
printf("请输入第二个数字:");
double num2 = atof(stdin.readline());
// 转换输入到Operation结构体
Operation op = {num1, num2, operatorInput[0]};
// 计算结果并打印
double result = calculate(op);
printf("%.2lf %c %.2lf = %.2lf\n", num1, op.operator_, num2, result);
return 0;
}
// 计算函数
double calculate(Operation op) {
switch (op.operator_) {
case '+':
return op.num1 + op.num2;
case '-':
return op.num1 - op.num2;
case '*':
return op.num1 * op.num2;
case '/':
if (op.num2 != 0)
return op.num1 / op.num2;
else
return "Error: Division by zero";
default:
return "Error: Invalid operator";
}
}
```
阅读全文