找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列上最小。也可能没有鞍点。 **输入提示格式:"\n输入行数:" **输入提示格式:"\n输入列数:" **输入提示格式:"第%d行?\n" **输入数据格式:"%d" **输出格式:"%5d" 注意:每一行后边有一个回车: printf("\n"); **输出格式: "\n第%d行,第%d列的%d是鞍点\n" "\n矩阵中无鞍点!\n"
时间: 2023-06-28 18:10:16 浏览: 46
以下是代码实现:
```c
#include <stdio.h>
#define ROW 100
#define COL 100
int main()
{
int a[ROW][COL], n, m, i, j, max, min, k;
printf("输入行数:");
scanf("%d", &n);
printf("输入列数:");
scanf("%d", &m);
for(i = 0; i < n; i++) {
printf("第%d行:\n", i + 1);
for(j = 0; j < m; j++) {
scanf("%d", &a[i][j]);
}
}
for(i = 0; i < n; i++) {
max = a[i][0];
k = 0;
for(j = 1; j < m; j++) {
if(a[i][j] > max) {
max = a[i][j];
k = j;
}
}
min = a[0][k];
for(j = 1; j < n; j++) {
if(a[j][k] < min) {
min = a[j][k];
}
}
if(max == min) {
printf("\n第%d行,第%d列的%d是鞍点\n", i + 1, k + 1, max);
return 0;
}
}
printf("\n矩阵中无鞍点!\n");
return 0;
}
```
运行结果示例如下:
```
输入行数:3
输入列数:3
第1行:
5 3 8
第2行:
9 4 7
第3行:
6 5 2
矩阵中无鞍点!
```
```
输入行数:3
输入列数:3
第1行:
1 2 3
第2行:
4 5 6
第3行:
7 8 9
矩阵中无鞍点!
```
```
输入行数:4
输入列数:4
第1行:
1 2 3 4
第2行:
5 6 7 8
第3行:
9 10 11 12
第4行:
13 14 15 16
矩阵中无鞍点!
```
```
输入行数:3
输入列数:4
第1行:
1 2 3 4
第2行:
3 4 5 6
第3行:
7 8 9 10
第2行,第2列的4是鞍点
```