c语言编写一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。 本题要求编写程序,求一个给定的n阶方阵的鞍点。 输入格式: 输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。 输出格式: 输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。
时间: 2023-12-03 17:43:29 浏览: 151
以下是C语言的代码实现:
```c
#include <stdio.h>
int main()
{
int n, i, j, max, min, row, col;
int a[6][6];
scanf("%d", &n);
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
scanf("%d", &a[i][j]);
for (i = 0; i < n; i++)
{
max = a[i][0];
col = 0;
for (j = 1; j < n; j++)
{
if (a[i][j] > max)
{
max = a[i][j];
col = j;
}
}
min = a[0][col];
row = 0;
for (j = 1; j < n; j++)
{
if (a[j][col] < min)
{
min = a[j][col];
row = j;
}
}
if (max == min)
{
printf("%d %d\n", row, col);
return 0;
}
}
printf("NONE\n");
return 0;
}
```
代码思路:
1.读入n和n阶方阵a;
2.对于每一行,找到最大值和其所在的列;
3.在该列中找到最小值和其所在的行;
4.如果该位置的元素值即为最大值又为最小值,则输出该位置的行下标和列下标,程序结束;否则继续寻找。
5.若循环结束后没有找到鞍点,则输出NONE。
阅读全文