5.找鞍点。输入1个正整数n(1≤n≤6)和n阶方阵a中的元素,假设方阵。景多有1个鞍点,如果找到a的鞍点,就输出其下标,否则,输出“NO”。鞍点的元素值在该行上最大,在该列上最小。试用c语言编写相应程序。
时间: 2024-02-12 21:07:27 浏览: 104
以下是使用 C 语言编写的解答:
```c
#include <stdio.h>
int main() {
int n, a[6][6];
scanf("%d", &n);
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
}
}
for(int i = 0; i < n; i++) {
int max = a[i][0], max_j = 0;
for(int j = 1; j < n; j++) {
if(a[i][j] > max) {
max = a[i][j];
max_j = j;
}
}
int flag = 1;
for(int k = 0; k < n; k++) {
if(a[k][max_j] < max) {
flag = 0;
break;
}
}
if(flag) {
printf("%d %d\n", i+1, max_j+1);
return 0;
}
}
printf("NO\n");
return 0;
}
```
程序首先读入矩阵的大小 n 和元素值,然后逐行扫描,对于每行找到最大值及其下标,再扫描该列,如果该列所有元素值都不小于最大值,则说明找到了鞍点,输出其下标并结束程序。如果扫描完所有行都没有找到鞍点,则输出 "NO"。
阅读全文