C语言首先输入两个整数,然后输入功能号(1~4),通过指向函数的指针变量调用对应的加法函数、减法函数、乘法函数或除法函数,输出两个整数相加、相减、相乘或相除的结果。
时间: 2024-02-19 15:57:58 浏览: 102
下面是实现该程序的示例代码:
```c
#include <stdio.h>
int add(int x, int y) {
return x + y;
}
int sub(int x, int y) {
return x - y;
}
int mul(int x, int y) {
return x * y;
}
int div(int x, int y) {
if (y == 0) {
printf("Error: divisor is zero!\n");
return 0;
} else {
return x / y;
}
}
int main() {
int x, y, choice;
int (*func_ptr)(int, int) = NULL;
printf("Please enter two integers: ");
scanf("%d %d", &x, &y);
printf("Please enter the function number (1=add, 2=sub, 3=mul, 4=div): ");
scanf("%d", &choice);
switch (choice) {
case 1:
func_ptr = add;
break;
case 2:
func_ptr = sub;
break;
case 3:
func_ptr = mul;
break;
case 4:
func_ptr = div;
break;
default:
printf("Error: invalid function number!\n");
return 1;
}
int result = (*func_ptr)(x, y);
printf("The result is: %d\n", result);
return 0;
}
```
解释一下程序的实现:
1. 首先,我们使用 `scanf` 函数输入两个整数 `x` 和 `y`。
2. 然后,我们使用 `scanf` 函数输入一个整数 `choice`,表示用户希望调用哪种函数。
3. 根据用户输入的 `choice`,我们使用 `switch` 语句选择对应的加法、减法、乘法或除法函数,并将其指针存储在 `func_ptr` 变量中。
4. 最后,我们通过 `(*func_ptr)(x, y)` 的方式调用选定的函数,并将其结果存储在 `result` 变量中,然后将其打印出来。
需要注意的是,除法函数 `div` 中要特判除数为零的情况,并在这种情况下打印错误信息。
阅读全文