编写c程序。 找出二维数组中的所有鞍点,既该位置的元素在该行上最大,但是在该列上最小。可能有多个鞍点,也有可能没有点。
时间: 2024-12-08 20:23:09 浏览: 8
数组经典例题求鞍点.txt
5星 · 资源好评率100%
编写一个C程序来找出二维数组中的所有鞍点,可以按照以下步骤操作:
首先,创建一个函数`find_ants_in_matrix`,它接受一个二维整数数组作为参数。然后,我们遍历每一个元素,检查它的值是否同时大于左邻元素(在同一行,列减一的位置)和小于上邻元素(在同一列,行减一的位置)。如果是,则打印这个位置(即鞍点坐标),并继续搜索其他位置。
```c
#include <stdio.h>
// 辅助函数,检查当前元素是否是鞍点
void check_ant(int row, int col, int matrix[][SIZE], int size) {
if (col > 0 && matrix[row][col] > matrix[row][col - 1] && // 检查右侧小于
row > 0 && matrix[row][col] < matrix[row - 1][col]) { // 检查上方大于
printf("(%d,%d),", row, col); // 打印鞍点坐标
}
}
// 主函数,遍历矩阵寻找鞍点
void find_ants_in_matrix(int matrix[][SIZE], int size) {
for (int row = 0; row < size; ++row) {
for (int col = 0; col < size; ++col) {
check_ant(row, col, matrix, size);
}
}
}
// 主程序入口
int main() {
#define SIZE 3
int matrix[SIZE][SIZE] = {
{1, 3, 5},
{2, 4, 6},
{5, 6, 7}
};
find_ants_in_matrix(matrix, SIZE);
// 可以添加更多测试案例...
return 0;
}
阅读全文