C语言在线答疑

找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。提示:①一个二维数组可能有鞍点也可能没有鞍点,若有鞍点,则只有一个。②准备两组测试数据:③用sca... 找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。提示:①一个二维数组可能有鞍点也可能没有鞍点,若有鞍点,则只有一个。②准备两组测试数据:③用scanf函数从键盘输入数组各元素的值,检查结果是否正确。如果已指定了数组的行数和列数,可以在程序中对数组元素赋初值,而不必用scanf函数。请同学们修改程序以实现之。
第三问要怎么改才能运行
展开
 我来答
鸿子92
2017-12-29 · TA获得超过516个赞
知道小有建树答主
回答量:148
采纳率:86%
帮助的人:25.1万
展开全部
设计思路:
1/先找出每一行的最大数,记录位置到数组中。
2/找出每一列最小的数,得出位置和之前数组比对,如果相通,说明是鞍点。

在火车上,只能用手机敲代码。代码如下:
#include

typedef struct POS{ //位置坐标结构体
int M;
int N;
};

void Show(int **rect, POS p); //显示对应的点
POS FindRowMax(int **rect, int m, int n);
POS FindColMini(int **rect, int m, int n);

int main( )
{
int i = 0, j = 0, flag = 0;
int rectArray[3][4] = {{1,2,6,4},{5,6,7,8},{9,10,11,12}};

POS rowMaxPosArray[3] = {};
POS colMiniPosArray[4] = {};
for ( i = 0; i < 3; i++)
{
rowMaxPosArray[i] = FindRowMax( rectArray, i, 4);
}

for ( i = 0; i < 4; i++)
{
colMiniPosArray[i] = FindColMini( rectArray, 3, i);
}

for ( i = 0; i < 3; i++)
{
for ( j = 0; j < 4; i++)
{
if (rowMaxPosArray[i] == colMiniPosArray[j])
{
Show(rectArray, rowMaxPosArray[i] );
flag = 1;
}
}
}

if (!flag)
{
printf("不存在鞍点\n");
}
return 0;
}
追答
字数超过了?。。以后有电脑的时候再把定义的函数实现
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式