用C语言实现一个简单的计算器,该计算器可以进行加法、减法、乘法、除法、求平方和运算。要求: 针对加法、减法、乘法、除法、求平方和五种不同的运算分别用单独的函数实现。
时间: 2024-10-22 07:07:49 浏览: 55
为了在C语言中实现一个简单的计算器,你可以创建一个包含五个功能函数的结构体,每个函数对应一种运算。这里是一个基本的示例:
```c
#include <stdio.h>
// 定义一个结构体,存储计算器的功能
typedef struct {
double (*add)(double, double);
double (*subtract)(double, double);
double (*multiply)(double, double);
double (*divide)(double, double);
double (*square)(double);
} Calculator;
// 加法函数
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;
}
// 除法函数,需要处理除数为0的情况
double divide(double a, double b) {
if (b != 0)
return a / b;
else
printf("Error: Division by zero is not allowed.\n");
// 返回一个默认值或者抛出错误,这取决于你的需求
return 0.0; // 示例返回0
}
// 求平方函数
double square(double a) {
return a * a;
}
// 主函数,用于获取用户输入并调用相应的函数
void calculator(Calculator calc, char operation, double num1, double num2) {
switch(operation) {
case '+':
printf("%.2f %c %.2f = %.2f\n", num1, operation, num2, calc.add(num1, num2));
break;
case '-':
printf("%.2f %c %.2f = %.2f\n", num1, operation, num2, calc.subtract(num1, num2));
break;
case '*':
printf("%.2f %c %.2f = %.2f\n", num1, operation, num2, calc.multiply(num1, num2));
break;
case '/':
printf("%.2f %c %.2f = %.2f\n", num1, operation, num2, calc.divide(num1, num2));
break;
case '^': // 通常我们不会用 '^' 表示平方,这里只是为了演示
printf("%.2f ^ %.2f = %.2f\n", num1, num2, calc.square(num1));
break;
default:
printf("Invalid operation. Please enter +, -, *, / or ^. \n");
}
}
int main() {
Calculator calc = {add, subtract, multiply, divide, square};
double num1, num2;
char op;
printf("Enter two numbers and an operator (+,-,*,/,^): ");
scanf("%lf %c %lf", &num1, &op, &num2);
calculator(calc, op, num1, num2);
return 0;
}
```
在这个示例中,用户可以输入两个数字和一个运算符,然后计算机会调用对应的函数进行运算,并显示结果。
阅读全文