找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列上最小。也可能没有鞍点。 **输入提示格式:"\n输入行数:" **输入提示格式:"\n输入列数:" **输入提示格式:"第%d行?\n" **输入数据格式:"%d" **输出格式:"%5d" 注意:每一行后边有一个回车: printf("\n"); **输出格式: "\n第%d行,第%d列的%d是鞍点\n" "\n矩阵中无鞍点!\n"
时间: 2023-07-08 18:53:17 浏览: 80
好的,我已经理解了你的问题。以下是解答:
```python
#include <stdio.h>
#include <stdlib.h>
int main()
{
int row, col;
printf("\n输入行数:");
scanf("%d", &row);
printf("\n输入列数:");
scanf("%d", &col);
int **matrix = (int **)malloc(row * sizeof(int *));
for (int i = 0; i < row; i++)
{
matrix[i] = (int *)malloc(col * sizeof(int));
}
for (int i = 0; i < row; i++)
{
printf("第%d行?\n", i + 1);
for (int j = 0; j < col; j++)
{
scanf("%d", &matrix[i][j]);
}
}
int flag = 0;
for (int i = 0; i < row; i++)
{
int max = matrix[i][0], max_index = 0;
for (int j = 1; j < col; j++)
{
if (matrix[i][j] > max)
{
max = matrix[i][j];
max_index = j;
}
}
int min = matrix[0][max_index], min_index = 0;
for (int k = 1; k < row; k++)
{
if (matrix[k][max_index] < min)
{
min = matrix[k][max_index];
min_index = k;
}
}
if (i == min_index)
{
printf("\n第%d行,第%d列的%d是鞍点\n", i + 1, max_index + 1, max);
flag = 1;
}
}
if (flag == 0)
{
printf("\n矩阵中无鞍点!\n");
}
for (int i = 0; i < row; i++)
{
free(matrix[i]);
}
free(matrix);
return 0;
}
```
这个程序可以找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列上最小。如果没有鞍点,则输出“矩阵中无鞍点!”。你可以将这段代码保存为一个C文件,然后使用C编译器进行编译运行。
阅读全文