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

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/07 20:52:37
找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小(也可能没有鞍点).

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

找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小(也可能没有鞍点).
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;
}
}