用C语言编写:模拟具有加,减,乘,除四种功能的简单计算器 运算结果保留两位小数。
时间: 2024-12-06 20:22:42 浏览: 32
在C语言中,我们可以创建一个结构体来表示四则运算的功能,并提供相应的函数来执行操作。这里是一个简单的示例:
```c
#include <stdio.h>
#include <math.h> // 包含数学库,用于取整和格式化浮点数
// 定义结构体存储操作数和运算符
typedef struct {
double num1; // 第一个操作数
char op; // 运算符
double num2; // 第二个操作数
} Calculator;
// 功能函数,根据运算符进行计算并返回结果
double calculate(Calculator calc) {
switch (calc.op) {
case '+':
return round(calc.num1 + calc.num2 * 100) / 100.0;
case '-':
return round(calc.num1 - calc.num2 * 100) / 100.0;
case '*':
return round(calc.num1 * calc.num2 * 100) / 100.0;
case '/': // 注意处理除以零的情况
if (calc.num2 != 0)
return round(calc.num1 / calc.num2 * 100) / 100.0;
else
printf("Error! Division by zero is not allowed.\n");
return 0;
default:
printf("Invalid operator. Please use '+', '-', '*' or '/' for the operation.\n");
return 0;
}
}
int main() {
Calculator calc;
double result;
printf("Enter first number: ");
scanf("%lf", &calc.num1);
printf("Enter an operator (+, -, *, /): ");
getchar(); // 防止上一次输入的'\n'干扰下一个输入
scanf(" %c", &calc.op);
printf("Enter second number: ");
scanf("%lf", &calc.num2);
result = calculate(calc);
if (result != 0)
printf("Result: %.2f\n", result); // 保留两位小数
return 0;
}
```
在这个程序中,用户会被提示输入两个数字和一个运算符,然后`calculate`函数会根据输入的运算符进行对应的计算。注意,由于浮点数运算存在精度问题,我们先将结果乘以100进行整数运算,然后再除以100得到近似值,这样可以保证结果的小数部分最多只有两位。
阅读全文