以下是一个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,依次调用函数指针数组中的函数,计算每个一维数组的最大值,并输出结果。 这个程序中的函数指针数组可以用于存储任意数量的自定义函数,并且可以在需要时动态地改变其内容。
遗心遗梦遗幸福
2024-10-15 08:16:21
下面是C语言中用二维数组定义一个自定义函数,用于求二维数组中的最大值的代码: #include <stdio.h> #define ROW 3 #define COL 4 int max(int a, int b) { return a > b ? a : b; } int maxValue(int arr[][COL], int row, int col) { int i, j, maxVal = arr[0][0]; for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { maxVal = max(maxVal, arr[i][j]); } } return maxVal; } int main() { int arr[ROW][COL] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}; int maxVal = maxValue(arr, ROW, COL); printf("最大值为:%d\n", maxVal); return 0; } 上面的代码首先定义了一个自定义函数max,用于比较两个数的大小并返回最大值。然后定义了一个maxValue函数,用于求二维数组arr中的最大值,把最大值储存在maxVal变量中并返回。最后,在main函数中创建了一个二维数组arr,并调用maxValue函数计算出最大值,并将结果打印出来。