编写c语言程序,找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。
时间: 2023-11-06 22:12:49 浏览: 73
C语言程序设计-求一个二维数组中的鞍点
5星 · 资源好评率100%
好的,以下是实现该功能的C语言程序:
```c
#include <stdio.h>
int main() {
int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int i, j, max, min, flag = 0;
// 输出数组
printf("二维数组为:\n");
for(i = 0; i < 3; i++) {
for(j = 0; j < 3; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
// 查找鞍点
for(i = 0; i < 3; i++) {
max = arr[i][0];
for(j = 1; j < 3; j++) {
if(arr[i][j] > max) {
max = arr[i][j];
}
}
for(j = 0; j < 3; j++) {
if(arr[i][j] == max) {
min = arr[0][j];
for(int k = 1; k < 3; k++) {
if(arr[k][j] < min) {
min = arr[k][j];
}
}
if(arr[i][j] == min) {
printf("鞍点为 %d,坐标为 (%d, %d)\n", arr[i][j], i+1, j+1);
flag = 1;
}
}
}
}
if(flag == 0) {
printf("没有鞍点\n");
}
return 0;
}
```
程序中首先定义了一个二维整型数组 `arr`,然后遍历数组,查找每行的最大值,再查找每列的最小值,如果某个元素既是该行的最大值又是该列的最小值,则说明该元素是一个鞍点。如果找到了鞍点,则输出其值和坐标,如果没有找到,则输出没有鞍点。
阅读全文