C语言实现:输入n和n*n的整数矩阵元素,求其鞍点。n不超过10
时间: 2024-05-12 08:14:20 浏览: 112
鞍点指的是一个矩阵中的某个元素,它在该行上是最大值,在该列上是最小值。下面是C语言实现:
```c
#include <stdio.h>
#define MAX_SIZE 10
int main() {
int n, matrix[MAX_SIZE][MAX_SIZE];
printf("请输入矩阵的大小n:");
scanf("%d", &n);
printf("请输入%d*%d的矩阵元素:\n", n, n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 遍历每个元素,检查是否为鞍点
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
int row_max = matrix[i][j], col_min = matrix[i][j];
int is_saddle_point = 1; // 假设当前元素为鞍点
// 找到该元素所在行的最大值和所在列的最小值,并判断是否符合鞍点的定义
for (int k = 0; k < n; k++) {
if (matrix[i][k] > row_max) {
row_max = matrix[i][k];
}
if (matrix[k][j] < col_min) {
col_min = matrix[k][j];
}
}
if (matrix[i][j] != row_max || matrix[i][j] != col_min) {
is_saddle_point = 0; // 不符合鞍点的定义,取消假设
}
if (is_saddle_point) {
printf("找到一个鞍点:(%d, %d)\n", i, j);
}
}
}
return 0;
}
```
该程序首先读入矩阵的大小和元素,然后遍历每个元素,找到该元素所在行的最大值和所在列的最小值,判断是否符合鞍点的定义。如果找到了鞍点,就输出其坐标。
阅读全文