编写一个c语言程序,找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小,可能没有鞍点
时间: 2023-11-06 12:18:28 浏览: 97
数组经典例题求鞍点.txt
5星 · 资源好评率100%
以下是一个C语言程序,可以找到一个二维数组中的鞍点:
```c
#include <stdio.h>
#define ROWS 3 // 定义行数
#define COLS 3 // 定义列数
int main() {
int matrix[ROWS][COLS] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; // 定义一个3x3的矩阵
int row_max, col_min, saddle_point; // 分别用于存储行的最大值、列的最小值、鞍点的位置
for (int i=0; i<ROWS; i++) {
row_max = matrix[i][0]; // 初始化行的最大值
col_min = matrix[0][0]; // 初始化列的最小值
saddle_point = 0; // 初始化鞍点的位置
for (int j=0; j<COLS; j++) {
if (matrix[i][j] > row_max) { // 找到行的最大值
row_max = matrix[i][j];
saddle_point = j; // 记录鞍点所在的列
}
}
for (int k=0; k<ROWS; k++) {
if (matrix[k][saddle_point] < col_min) { // 找到列的最小值
col_min = matrix[k][saddle_point];
}
}
if (col_min == row_max) { // 如果行的最大值等于列的最小值,说明找到了鞍点
printf("鞍点在第 %d 行,第 %d 列,值为 %d\n", i+1, saddle_point+1, col_min);
}
}
return 0;
}
```
注意,如果矩阵中没有鞍点,则程序不会输出任何信息。
阅读全文