【问题描述】 输入1 个正整数n(1<n<6)和n 阶整数矩阵a 中的元素,如果找到a 的鞍点(鞍点的元素值在该行上最大, 在该列上最小), 就输出它的下标及鞍点值;否则,输出none; (只要求输出a的第一个鞍点)。 【输入形式】 第一行,输入一个正整数,范围2~6 第二行开始,输入n阶整数矩阵,数据项用一个空格分开 【输出形式】 如果有鞍点,输出三个整数,分别代表第一个鞍点的行下标、列下标、鞍点值,它们之间用空格分隔;如果没有鞍点,输出:none
时间: 2024-03-23 20:41:53 浏览: 80
以下是C语言实现的代码:
```
#include <stdio.h>
int main() {
int n, matrix[6][6], i, j, row, col, max, min, saddle = 0;
// 读入矩阵阶数
printf("请输入矩阵阶数:\n");
scanf("%d", &n);
if (n < 2 || n > 6) {
printf("矩阵阶数超出范围!\n");
return 0;
}
// 读入矩阵元素值
printf("请输入矩阵元素值:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 查找鞍点
for (i = 0; i < n; i++) {
max = matrix[i][0];
col = 0;
for (j = 1; j < n; j++) {
if (matrix[i][j] > max) {
max = matrix[i][j];
col = j;
}
}
min = matrix[0][col];
row = 0;
for (j = 1; j < n; j++) {
if (matrix[j][col] < min) {
min = matrix[j][col];
row = j;
}
}
if (max == min) {
printf("第一个鞍点的下标及鞍点值为:%d %d %d\n", row, col, max);
saddle = 1;
break;
}
}
if (!saddle) {
printf("none\n");
}
return 0;
}
```
输入示例:
```
请输入矩阵阶数:
3
请输入矩阵元素值:
1 2 3
4 5 6
7 8 9
```
输出示例:
```
none
```
输入示例:
```
请输入矩阵阶数:
3
请输入矩阵元素值:
1 2 3
4 5 6
7 3 9
```
输出示例:
```
第一个鞍点的下标及鞍点值为:2 1 3
```
阅读全文