利用c语言:找出具有m行n列二维数组Array的“鞍点”,即该位置上的元素在该行上最大,在该列上最小,其中1<=m,n<=10
时间: 2024-02-23 07:58:22 浏览: 142
c语言寻找二维数组中的鞍点
以下是利用 C 语言实现寻找二维数组鞍点的代码:
```c
#include <stdio.h>
#define ROWS 10
#define COLS 10
int main() {
int array[ROWS][COLS];
int m, n;
// 读入数组
printf("请输入数组大小(m,n):");
scanf("%d,%d", &m, &n);
printf("请输入一个 %d 行 %d 列的数组:\n", m, n);
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &array[i][j]);
}
}
// 寻找鞍点
int hasSaddlePoint = 0;
for (int i = 0; i < m; i++) {
int maxInRow = array[i][0];
int colIndexOfMaxInRow = 0;
for (int j = 1; j < n; j++) {
if (array[i][j] > maxInRow) {
maxInRow = array[i][j];
colIndexOfMaxInRow = j;
}
}
int isSaddlePoint = 1;
for (int k = 0; k < m; k++) {
if (array[k][colIndexOfMaxInRow] < maxInRow) {
isSaddlePoint = 0;
break;
}
}
if (isSaddlePoint) {
printf("鞍点为:array[%d][%d] = %d\n", i, colIndexOfMaxInRow, maxInRow);
hasSaddlePoint = 1;
}
}
if (!hasSaddlePoint) {
printf("该数组没有鞍点。\n");
}
return 0;
}
```
该程序首先读入一个 m 行 n 列的二维数组,然后遍历每一行,对于每一行,找到该行上的最大元素及其列坐标,然后遍历该列,如果该列上的所有元素都小于等于该行上的最大元素,则该位置为鞍点。如果整个数组中没有鞍点,则输出相应信息。
阅读全文