用c语言设计一个实数计算器
时间: 2024-09-17 10:09:35 浏览: 66
C语言编写的科学计算器
5星 · 资源好评率100%
在C语言中设计一个简单的实数计算器,我们可以创建一个程序,支持加、减、乘、除等基本运算。这里是一个基础版本的示例:
```c
#include <stdio.h>
#include <math.h> // 包含数学函数库,如fabs用于计算绝对值
// 函数声明,处理加法操作
double add(double a, double b);
// 函数声明,处理减法操作
double subtract(double a, double b);
// 函数声明,处理乘法操作
double multiply(double a, double b);
// 函数声明,处理除法操作(需要处理除数为0的情况)
double divide(double a, double b);
int main() {
double num1, num2;
char operator;
printf("请输入第一个数字: ");
scanf("%lf", &num1);
printf("请输入运算符 (+, -, *, /): ");
scanf(" %c ", &operator); // 确保读取空格字符,避免干扰
if (operator == '+') {
printf("结果是: %.2lf\n", add(num1, num2));
} else if (operator == '-') {
printf("结果是: %.2lf\n", subtract(num1, num2));
} else if (operator == '*') {
printf("结果是: %.2lf\n", multiply(num1, num2));
} else if (operator == '/') {
double result = divide(num1, num2);
if (result != INFINITY) { // 判断除数是否为0
printf("结果是: %.2lf\n", result);
} else {
printf("错误: 除数不能为0.\n");
}
} else {
printf("无效的运算符.\n");
}
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;
}
// 使用 fabs 函数防止除以零导致的负无穷大
double divide(double a, double b) {
if (fabs(b) > DBL_EPSILON) {
return a / b;
} else {
return INFINITY; // 当b接近于0时,表示除数为零
}
}
```
这个程序首先接收用户输入的两个数字和一个运算符,然后根据运算符调用相应的函数进行计算。注意,为了处理除数为0的情况,我们使用了 `INFINITY` 来表示除法的结果。
阅读全文