#include<stdio.h>
void main()
{
int a[3][3]= {
3,6,-1,
4,5,1,
8,7,3,
};
int i,j,k;
int mini,maxj,minIndexI,maxIndexJ;
for(k=0; k<3; k++)
{
printf("找行最大:\n");
maxj = a[k][0];
maxIndexJ = k;
for(j=0; j<3; j++)
{
if(maxj < a[k][j])
{
maxj = a[k][j];
maxIndexJ = j;
}
printf("第%d行的最大下标:%d\n", k+1,maxIndexJ+1);
}
printf("找列最小:\n");
mini = a[k][maxIndexJ];
minIndexI = k;
for(i=0; i<3; i++)
{
if(mini > a[i][maxIndexJ])
{
minIndexI = i;
}
}
if(minIndexI == k)
{
printf("###########找到鞍点,行%d,列%d\n", minIndexI+1,maxIndexJ+1);
}
else
{
printf("第%d行没找到鞍点...\n", k+1);
}
}
}
闲着无聊,又温习了一遍....
#include<stdio.h>
#define N 4
#define M 4
void findSaddlePoint(int a[N][M], int n, int m)
{
int i,j;
int maxRow,maxRowX,minColumnY;
for(i=0; i<n; i++)
{
//假定第i行的最大值在第0个位置
maxRowX = 0;
minColumnY = i;
//记录这个最大值
maxRow = a[i][maxRowX];
//寻找行最大值以及行最大值所在的列
for(j=1; j<m; j++)
{
if(a[i][j] > maxRow)
{
maxRow = a[i][j];
maxRowX = j;
}
}
//对于已找到的第i行的最大值,判断是否为所在列(maxRowX)的最小值
for(j=0; j<n; j++)
{
//如果发现该列有更小的值,则不是鞍点
if(a[j][maxRowX] < a[i][maxRowX])
{
minColumnY = j;
break;
}
}
//如果对该列遍历结束后发现该列的第i行仍然是最小值,则找到鞍点
if(minColumnY == i)
{
printf("找到鞍点%d (y:%d, x:%d)", a[minColumnY][maxRowX], minColumnY+1, maxRowX+1);
}
}
}
void main()
{
//有鞍点
int a[N][M]= {
1,2,3,4,
3,4,5,6,
5,6,7,8,
6,7,8,9,
};
/*
//无鞍点
int a[N][M]= {
2,1,1,1,
1,2,3,4,
4,5,6,7,
9,8,7,6,
};
*/
findSaddlePoint(a, N, M);
}
分享到:
相关推荐
C++算法,在矩阵中寻找鞍点。它在该行中最大,而在该列中最小。我们把这样的元素称为“鞍点”。一个矩阵可能没有鞍点,要存在鞍点也只能有一个。输出结果和鞍点位置
VB 寻找鞍点 VB 寻找鞍点 VB 寻找鞍点
找出一个二维数组的鞍点,即该位置上的元素在该行上最大、在列上最小(也可能没有鞍点)。
一个矩阵中行中最大值列中最小值是这个矩阵的鞍点,用C语言实现求一个矩阵的鞍点
找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列上最小。也可能没有鞍点
一个小小的程序共大家分享! 找二维数组的鞍点,即该位置上的元素在该行上最大,在该列上最小(也可以没有鞍点)。
这是一份关于寻找鞍点的C语言编程,是C语言程序与设计课程的入门题。
编写程序,找出一个二维数组的鞍点,即在当前行最大,当前列最小的元素,也可能没有鞍点。
其中x代表鞍点,i和j为鞍点所在的数组行和列下标,我们规定数组下标从0开始。 一个二维数组并不一定存在鞍点,此时请输出None 我们保证不会出现两个鞍点的情况,比如: 3 3 1 2 3 1 2 3 3 6 8 测试说明 平台会对您...
所谓鞍点是指矩阵中的某个元素在其所在的行是最小的,同时在其所在列是最大的。选择合适的矩阵存储方式。以一个4行5列的矩阵为例,从键盘人已输入20个数据给矩阵赋值,然后判断其中是否存在鞍点。如果存在鞍点,输出...
所谓“鞍点”,是指满足以下条件的矩阵中的一个数,它在它所在的行上最小、所在列上最大。 该题中假设矩阵中任意两个数互不相等。 输入数据有多行: 第一行是矩阵的行数m和列数n 从第二行起共包含m行,每行包含n个...
用labviEW求数组鞍点 供大家学习 参考
鞍点指的是数组中的一个元素,它是所在行的最大值,并且是所在列的最小值。 例如:在下面的例子中(第4行第1列的元素就是鞍点,值为8 )。 11 3 5 6 9 12 4 7 8 10 10 5 6 9 11 8 6 4 7 2 15 10 11 20 25
鞍点的寻找。题目要求找出一个二维数组的鞍点,即在当前行最大,当前列最小的元素,也可能没有鞍点
给定一个5*5的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。 鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。 例如:在下面的例子中(第4行第1列的元素就是鞍点,...
寻找矩阵的鞍点(满足在当前行中最小且在当前列中最大的元素)
所谓“鞍点”,是指满足以下条件的矩阵中的一个数,它在它所在的行上最小、所在列上最大。 该题中假设矩阵中任意两个数互不相等。 输入: 输入数据有多行: 第一行是矩阵的行数m和列数n 从第二行起共包含m行,每...
可以找到二维数组鞍点问题,c++,并指出二维鞍点若存在则至多只有一个
鞍点 : 行中最大,列中最小. for (int i = 0; i ; i++) { for (int j = 0 ; j ; j++) { int max = array[i][j];//假设当前点是该行最大值 for (int column = 0; column ; column++) { if (max [i][column]) { .....
c++ 之鞍点,求矩阵鞍点