以下是一个C语言程序,用二维数组定义一个自定义函数数组,并计算数组中的最大值:
```c
#include <stdio.h>
// 自定义函数,用于计算一个整数数组的最大值
int array_max(int arr[], int len) {
int max = arr[0];
for (int i = 1; i < len; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
int main() {
// 定义一个二维数组,包含5个一维数组,每个一维数组包含6个整数
int arr[5][6] = {
{1, 2, 3, 4, 5, 6},
{6, 5, 4, 3, 2, 1},
{2, 4, 6, 8, 10, 12},
{3, 6, 9, 12, 15, 18},
{9, 8, 7, 6, 5, 4}
};
// 定义一个函数指针数组,用于存储array_max函数的地址
int (*func_array[5])(int[], int) = {array_max, array_max, array_max, array_max, array_max};
// 遍历二维数组,依次调用函数指针数组中的函数,计算每个一维数组的最大值
for (int i = 0; i < 5; i++) {
int max = (*func_array[i])(arr[i], 6);
printf("Array %!d(MISSING) max value: %!d(MISSING)\n", i, max);
}
return 0;
}
```
在这个程序中,首先定义了一个包含5个一维数组的二维数组arr。然后,定义了一个函数指针数组func_array,用于存储array_max函数的地址。接下来,通过遍历二维数组arr,依次调用函数指针数组中的函数,计算每个一维数组的最大值,并输出结果。
这个程序中的函数指针数组可以用于存储任意数量的自定义函数,并且可以在需要时动态地改变其内容。
温馨提示:答案为网友推荐,仅供参考