【问题描述】 输入1 个正整数n(1<n<6)和n 阶整数矩阵a 中的元素,如果找到a 的鞍点(鞍点的元素值在该行上最大, 在该列上最小), 就输出它的下标及鞍点值;否则,输出none; (只要求输出a的第一个鞍点)。 【输入形式】 第一行,输入一个正整数,范围2~6 第二行开始,输入n阶整数矩阵,数据项用一个空格分开 【输出形式】 如果有鞍点,输出三个整数,分别代表第一个鞍点的行下标、列下标、鞍点值,它们之间用空格分隔;如果没有鞍点,输出:none用C语言
时间: 2024-03-24 19:36:39 浏览: 46
实现如下:
```c
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
if (n < 2 || n > 6) {
printf("输入超界\n");
return 0;
}
int matrix[6][6];
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
scanf("%d", &matrix[i][j]);
}
}
int row, col, max, min;
int flag = 0;
for (int i = 0; i < n; ++i) {
max = matrix[i][0];
col = 0;
for (int j = 1; j < n; ++j) {
if (matrix[i][j] > max) {
max = matrix[i][j];
col = j;
}
}
min = matrix[0][col];
row = 0;
for (int j = 1; j < n; ++j) {
if (matrix[j][col] < min) {
min = matrix[j][col];
row = j;
}
}
if (max == min) {
flag = 1;
printf("%d %d %d\n", row, col, max);
break;
}
}
if (!flag) {
printf("none\n");
}
return 0;
}
```
注意:本程序只是一个简单的鞍点查找程序,不具备输入验证、异常处理等完整的功能。在实际开发中应该进行相应的处理。
阅读全文