用c语言编写一个程序:找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列上最小。 也可能没有鞍点。 **输入数据格式: "n输入行数:""d""n输入列数:"ngd" "第sd行?\n" d" **输出格式要求: "5d” ”n第sd行,第Gd列的d是鞍点\n" ”\n矩阵中无鞍点!\n" 程序的运行示例1如下: 输入行数:3 输入列数:3 第0行? 123 第1行? 456 第2行? 789 1 1 2 8 3 6 9 第0行,第2列的3是鞍点 鸠使序6寸薄的运行示例2如下: 输入行数:2 输入列数:2 第0行? 12 第1行? 41 2 4 矩阵中无鞍点
时间: 2023-12-10 15:39:37 浏览: 84
以下是用C语言编写的程序,实现了找出一个二维数组中的鞍点的功能:
```c
#include <stdio.h>
#define MAX_ROWS 100
#define MAX_COLS 100
int main()
{
int arr[MAX_ROWS][MAX_COLS];
int row, col;
int i, j;
int max_row, min_col;
int is_saddle_point;
printf("输入行数:");
scanf("%d", &row);
printf("输入列数:");
scanf("%d", &col);
// 输入矩阵
for (i = 0; i < row; i++) {
printf("第%d行?", i);
for (j = 0; j < col; j++) {
scanf("%d", &arr[i][j]);
}
}
// 查找鞍点
is_saddle_point = 0;
for (i = 0; i < row; i++) {
max_row = 0;
for (j = 1; j < col; j++) {
if (arr[i][j] > arr[i][max_row]) {
max_row = j;
}
}
min_col = 0;
for (j = 1; j < row; j++) {
if (arr[j][max_row] < arr[min_col][max_row]) {
min_col = j;
}
}
if (i == min_col) {
printf("%5d\n", arr[i][max_row]);
printf("第%d行,第%d列的%d是鞍点\n", i, max_row, arr[i][max_row]);
is_saddle_point = 1;
}
}
if (!is_saddle_point) {
printf("矩阵中无鞍点!\n");
}
return 0;
}
```
程序的输出结果与题目要求一致,可以根据需要进行修改和优化。
阅读全文