c语言编写三个函数,sum用于求和,prod用于求乘积,sub用于调用sum或prod函数实现求和或求积。主函数实现运算数据(两个)的输入与计算结果的输出。
时间: 2024-10-27 18:07:36 浏览: 43
multip_prod(varargin):几个数的乘积-matlab开发
在C语言中,你可以通过预处理宏、条件编译或函数指针来设计这样一个程序。这里我们使用函数指针来实现在主函数中动态选择调用`sum`或`prod`函数。以下是简单的代码示例:
```c
#include <stdio.h>
// 定义求和函数
int sum(int a, int b) {
return a + b;
}
// 定义求积函数
int prod(int a, int b) {
return a * b;
}
// 函数指针类型
typedef int (*operation_func)(int, int);
// 动态选择函数
int choose_operation(operation_func func, int a, int b) {
if (func == sum) {
return func(a, b);
} else {
return func(a, b);
}
}
int main() {
int a, b;
// 输入运算数
printf("请输入第一个操作数: ");
scanf("%d", &a);
printf("请输入第二个操作数: ");
scanf("%d", &b);
// 动态选择求和或求积
operation_func op = sum; // 默认选择sum
char choice;
printf("请选择运算(1: 和, 2: 积): ");
scanf(" %c", &choice);
switch(choice - '0') { // 转换字符到整数
case 1:
op = sum;
break;
case 2:
op = prod;
break;
}
// 计算并输出结果
int result = choose_operation(op, a, b);
printf("结果: %d\n", result);
return 0;
}
```
在这个例子中,`choose_operation`函数接收一个函数指针作为参数,并根据用户的选择动态地调用对应的函数。注意,在`main`函数中,通过`switch`语句实现了输入的选择。
阅读全文