二维数组的鞍点c语言
时间: 2024-04-22 11:20:07 浏览: 149
用C语言求二维数组鞍点
二维数组的鞍点是指在二维数组中,某个元素在其所在行中最大,同时在其所在列中最小的元素。在C语言中,可以通过以下步骤找到二维数组的鞍点:
1. 定义一个二维数组,并初始化数据。
2. 使用嵌套循环遍历数组的每个元素。
3. 对于每个元素,分别找出其所在行的最大值和所在列的最小值。
4. 如果该元素既是所在行的最大值又是所在列的最小值,则该元素为鞍点。
5. 输出所有鞍点的位置和值。
以下是一个示例代码:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
void findSaddlePoint(int matrix[ROWS][COLS]) {
int i, j, max, min, row, col;
int saddlePoints = 0;
for (i = 0; i < ROWS; i++) {
max = matrix[i];
col = 0;
// 找出当前行的最大值
for (j = 1; j < COLS; j++) {
if (matrix[i][j] > max) {
max = matrix[i][j];
col = j;
}
}
min = matrix[col];
row = 0;
// 找出当前列的最小值
for (j = 1; j < ROWS; j++) {
if (matrix[j][col] < min) {
min = matrix[j][col];
row = j;
}
}
// 判断是否为鞍点
if (max == min) {
printf("鞍点位置:[%d][%d],值:%d\n", row, col, max);
saddlePoints++;
}
}
if (saddlePoints == 0) {
printf("没有鞍点。\n");
}
}
int main() {
int matrix[ROWS][COLS] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
findSaddlePoint(matrix);
return 0;
}
```
运行以上代码,将输出鞍点的位置和值。如果没有鞍点,则输出"没有鞍点"。
阅读全文