编写C语言程序。要求:分别编写4个函数,计算两个整数的和、差、积、商。主函数提供⼀个菜单,能指定运算,主函数根据⽤户的指定选取函数的指针,并以函数指针为实参调⽤计算函数execute(int a, int b, int (*operation)(int, int))。
时间: 2024-12-21 07:29:57 浏览: 12
在C语言中,编写一个包含四个基本数学运算(加、减、乘、除)的程序,可以按照以下步骤进行:
1. 首先,我们需要声明和实现这四个函数,它们都接受两个`int`类型的参数并返回`int`结果。这里假设除法会处理除数为零的情况,避免运行时错误。
```c
// 计算两个整数的和
int add(int a, int b) {
return a + b;
}
// 计算两个整数的差
int subtract(int a, int b) {
return a - b;
}
// 计算两个整数的积
int multiply(int a, int b) {
return a * b;
}
// 宽容地计算两个整数的商(除数不为零)
double safe_divide(int a, int b) {
if (b != 0) {
return (double) a / b;
} else {
return 0; // 或者抛出异常,取决于您的处理策略
}
}
```
2. 接下来,我们创建一个主函数(`main()`),它负责显示菜单让用户选择操作,并根据用户输入调用相应的函数。我们将使用结构体存储函数指针数组以及对应的描述字符串,方便用户理解和选择。
```c
#include <stdio.h>
typedef struct OperationInfo {
const char* description;
int (*func)(int, int);
} Operation;
void execute(int a, int b, Operation operation) {
printf("%s: %d\n", operation.description, operation.func(a, b));
}
int main() {
Operation operations[] = {
{"加", add},
{"减", subtract},
{"乘", multiply},
{"除", safe_divide},
};
int choice, a, b;
printf("请选择运算(1.加 2.减 3.乘 4.除):\n");
scanf("%d", &choice);
a = ...; // 从用户那里获取第一个整数
b = ...; // 获取第二个整数
if (choice >= 1 && choice <= sizeof(operations)/sizeof(operations[0])) {
execute(a, b, operations[choice - 1]);
} else {
printf("无效的选择,请重新尝试。\n");
}
return 0;
}
```
在这个示例中,`execute`函数接受一个函数指针作为第三个参数,根据用户的选择动态调用相应的运算函数。记得补充主函数中获取用户输入部分的代码。
阅读全文