C语言求二维数组鞍点
题目出自谭浩强C程序设计第四版 6.8
鞍点,即该位置上的元素在该行上最大,在该列上最小。
一个二维数组有可能有多个鞍点,当然也可能没有鞍点。
此代码仅考虑鞍点存在的情况
解题思路:先找出一行中值最大的元素,再检查它是否为该列的最小值
#include<stdio.h>
#define N 4
#define M 5
int main()
{
int i,j,k,max,min;
int array[N][M];
printf("请输入数组元素:\n");
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
scanf("%d",&array[i][j]);
}
for(i=0;i<N;i++)
{
max = array[i][0];
for(j=0;j<M;j++) //横向比较
{
if(max < array[i][j])
max = array[i][j];
k = j; //记录当前行中最大的列标
}
min = array[0][k];
for(ii=0;ii<N;ii++) //针对当前列纵向比较
{
if(min > array[ii][k])
min = array[ii][k];
}
if(min == max ) //看是否符合鞍点条件
{
printf("array[%d][%d]=%d",i,k,max); //输出鞍点位置以及鞍点值
}
}
return 0;
}

这篇博客介绍了如何使用C语言找到二维数组中的鞍点,即数组元素在同一行上最大且在同一列上最小。文章基于谭浩强C程序设计第四版的6.8题目,讨论了可能存在的多个鞍点情况,并提供了有鞍点存在时的解题思路。

1万+

被折叠的 条评论
为什么被折叠?



