编写c语言代码找出一个二维数组的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。
时间: 2023-11-06 07:24:25 浏览: 152
以下是一个找出二维数组鞍点的C语言代码示例:
```c
#include <stdio.h>
#define ROWS 3 // 数组行数
#define COLS 3 // 数组列数
int main() {
int arr[ROWS][COLS] = {
{3,2,1},
{4,5,6},
{9,8,7}
}; // 定义一个3行3列的二维数组
int i, j, k, max, min, saddle;
for (i = 0; i < ROWS; i++) {
max = arr[i][0]; // 假设第一列为该行最大值
k = 0; // 记录最大值的列号
for (j = 1; j < COLS; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
k = j;
}
}
min = arr[0][k]; // 假设第一行为该列最小值
for (j = 1; j < ROWS; j++) {
if (arr[j][k] < min) {
min = arr[j][k];
}
}
if (max == min) {
saddle = max;
printf("鞍点为:%d,坐标为(%d,%d)\n", saddle, i, k);
return 0; // 找到一个鞍点即可退出程序
}
}
printf("该数组没有鞍点!\n");
return 0;
}
```
解析:该程序通过两个嵌套的for循环遍历数组中的每个元素,首先在每一行中找出最大值,然后在该列中找出最小值,如果最大值等于最小值,则找到了一个鞍点,输出该点的值和坐标并退出程序。如果程序运行完毕还没有找到鞍点,则输出提示信息。
阅读全文