找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小(也可能没有鞍点).

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 20:58:02
找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小(也可能没有鞍点).
xU[kA+<%d&MJҀAЇMܖɦa/^ VHCB j^j!_Կ4qZfgΙ7;3Tn㫳yhGp;wu mo|{eyk^{Ѻi@`g n{}Oɩ}iu}n'ǍLQ5y0u!}K":M\MYhJ@NJ46Z1^U<)i5% ̃Epr"K|@| lXɀt 0)IyLd9+EbďG|ll Q@2pUUՊ4w[t*R4:~A#{Zx$^3gHXb2RIa%P& ,L]˪QہNl{9@Gp0kx<;H!H|cyA*ˎ\-s9GyQ8@!SY=

找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小(也可能没有鞍点).
找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小(也可能没有鞍点).

找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小(也可能没有鞍点).
using System;
class Program3
{
public static void Main()
{
int[,] arr = { { 1, 3, 2 }, { 9, 8, 7 }, { 4, 5, 6 }, { 0, 4, 8 } };
int rows = 4;
int cols = 3;
int count = GetMaxMinValue(arr, rows, cols);
if (count < 1)
{
Console.WriteLine("当前二维数组arr没有鞍点:");
}
}
//二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小(也可能没有鞍点)
public static int GetMaxMinValue(int[,] arr, int rows, int cols)
{
int i, j, k;
int res;
int count = 0;
for (i = 0; i < rows; i++)
{
for (j = 0; j < cols; j++)
{
res = arr[i, j];
//判断res在当前行是否是最大的
for (k = 0; k < cols; k++)
{
if (arr[i, k] > res)
break;
}
if (k < cols)
{
continue;
}
//判断res在当行列是否是最小的
for (k = 0; k < rows; k++)
{
if (arr[k, j] < res)
break;
}
if (k < rows)
{
continue;
}
count++;
Console.WriteLine("鞍点A[{0},{1}] = {2}", i, j, arr[i, j]);
}
}
return count;
}
}