C语言用switch语句编写一个简单的实数四则运算
时间: 2024-10-28 19:10:50 浏览: 52
在C语言中,由于switch语句主要用于处理整型表达式的匹配,直接用于浮点数的四则运算并不直接支持。不过我们可以借助一些技巧来间接实现这个功能,例如将实数转换成整数(通常是取整),然后进行操作。以下是一个简单的例子,假设我们要对两个浮点数进行加法、减法、乘法和除法:
```c
#include <stdio.h>
#include <math.h>
int round_to_int(double num) {
return (int)(num + 0.5); // 四舍五入到最近的整数
}
double perform_operation(double a, double b, char op) {
int a_int = round_to_int(a);
int b_int = round_to_int(b);
switch(op) {
case '+':
return (double)a_int + b;
case '-':
return (double)a_int - b;
case '*':
return (double)a_int * b;
case '/': // 注意这里除法需要处理除数为零的情况
if (b == 0) {
printf("Error: Division by zero is not allowed.\n");
return 0;
}
return (double)a_int / b;
default:
printf("Invalid operator.\n");
return 0;
}
}
int main() {
double num1 = 4.8;
double num2 = 2;
char operation;
printf("Enter an operation (+, -, *, /): ");
scanf("%c", &operation);
double result = perform_operation(num1, num2, operation);
if (result != 0) {
printf("%.2f %c %.2f = %.2f\n", num1, operation, num2, result);
}
return 0;
}
```
在这个示例中,我们首先把实数转换为整数进行计算,然后再将结果转换回浮点数返回。然而,这并不是标准的数学运算,因为会有精度损失。对于复杂的浮点数运算,建议使用更专业的库函数如`fabs`, `pow`等。
阅读全文