【问题描述】 输入1 个正整数n(1<n<6)和n 阶整数矩阵a 中的元素,如果找到a 的鞍点(鞍点的元素值在该行上最大, 在该列上最小), 就输出它的下标及鞍点值;否则,输出none; (只要求输出a的第一个鞍点)。 【输入形式】 第一行,输入一个正整数,范围2~6 第二行开始,输入n阶整数矩阵,数据项用一个空格分开 【输出形式】 如果有鞍点,输出三个整数,分别代表第一个鞍点的行下标、列下标、鞍点值,它们之间用空格分隔;如果没有鞍点,输出:none 【样例输入】 4 1 7 4 1 4 8 3 6 1 6 1 2 0 7 8 9 【样例输出】 2 1 6用C语言写
时间: 2024-03-24 16:36:02 浏览: 46
输入两个正整数m和n求其最大公约数和最小公倍数 (2).pdf
```
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int a[6][6];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
}
}
int flag = 0; // 标记是否找到鞍点
for (int i = 0; i < n; i++) {
int min = a[i][0], min_j = 0; // 最小值和最小值所在列的下标
for (int j = 1; j < n; j++) {
if (a[i][j] < min) {
min = a[i][j];
min_j = j;
}
}
int max = a[0][min_j], max_i = 0; // 最大值和最大值所在行的下标
for (int k = 1; k < n; k++) {
if (a[k][min_j] > max) {
max = a[k][min_j];
max_i = k;
}
}
if (max == a[i][min_j]) { // 找到鞍点
printf("%d %d %d", max_i+1, min_j+1, max);
flag = 1;
break;
}
}
if (!flag) { // 没有找到鞍点
printf("none");
}
return 0;
}
```
阅读全文