用c语言编写一个简单科学计算器程序,要求尽可能利用所学过的分支判断结构语句,循环控制语句,函数和递归函数尽可能多的实现除了单项简单加减乘除之外的:复合四则运算,累加,累乘,平方,开方等运算
时间: 2024-12-20 15:31:58 浏览: 13
用c语言编写的计算器源代码.doc
编写一个简单的科学计算器程序可以展示对C语言基础结构的理解和应用,包括分支判断、循环控制以及函数和递归。以下是一个示例程序,包含了复合四则运算、累加、累乘、平方和开方等运算:
```c
#include <stdio.h>
#include <math.h> // 引入数学库,用于计算平方根
void add(float a, float b) { // 加法函数
printf("Addition: %.2f + %.2f = %.2f\n", a, b, a + b);
}
void subtract(float a, float b) { // 减法函数
printf("Subtraction: %.2f - %.2f = %.2f\n", a, b, a - b);
}
void multiply(float a, float b) { // 乘法函数
printf("Multiplication: %.2f * %.2f = %.2f\n", a, b, a * b);
}
void divide(float a, float b) { // 除法函数
if (b != 0) {
printf("Division: %.2f / %.2f = %.2f\n", a, b, a / b);
} else {
printf("Error: Division by zero is not allowed.\n");
}
}
void compound_operation(float a, float b, char op) { // 复合运算
switch (op) {
case '+':
add(a, b);
break;
case '-':
subtract(a, b);
break;
case '*':
multiply(a, b);
break;
case '/':
divide(a, b);
break;
default:
printf("Invalid operation! Please choose from +,-,*,/\n");
break;
}
}
void power(float a, float b) { // 幂运算(用乘法实现)
printf("Power: %.2f to the power of %.2f = %.2f\n", a, b, pow(a, b));
}
void square_root(float a) { // 开方运算
if (a >= 0) {
printf("Square Root: %.2f = %.2f\n", a, sqrt(a));
} else {
printf("Error: Square root of negative number is not valid.\n");
}
}
int main() {
float num1, num2;
char op;
printf("Enter two numbers and an operator (+, -, *, /, ^ for power, sqrt for square root): ");
scanf("%f %f %c", &num1, &num2, &op);
if (op == '^') { // 判断是否是幂运算
power(num1, num2);
} else if (op == 'sqrt') { // 判断是否是开方运算
square_root(num1);
} else { // 其他四则运算
compound_operation(num1, num2, op);
}
return 0;
}
```
在这个程序中,我们创建了多个函数分别处理不同的运算,并在主函数中根据用户输入选择合适的操作。同时,还展示了如何使用`if...else`分支判断和`switch`语句来选择不同的计算路径。
阅读全文