用c#写找到一个具有鞍点的二维数组(3行4列,值的范围在0~100之间)。 如果某元素是其所在行的最大值,同时是其所在列的最小值,那么该元素是二维数组的鞍点。并非所有的数组都存在鞍点。
时间: 2024-09-08 09:00:52 浏览: 36
找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列上最小 也可能没有鞍点
在C#中,要找到一个二维数组中的鞍点,你需要遍历数组的每个元素,并检查其是否满足鞍点的定义。鞍点是指数组中的某个元素是其所在行的最大值,并且同时是其所在列的最小值。下面是一个简单的C#程序示例,用于找到给定的3行4列二维数组中的鞍点:
```csharp
using System;
class Program
{
static void Main()
{
int[,] array =
{
{10, 20, 30, 40},
{15, 25, 35, 45},
{27, 29, 37, 48}
};
FindSaddlePoint(array);
}
static void FindSaddlePoint(int[,] matrix)
{
for (int i = 0; i < matrix.GetLength(0); i++) // 遍历行
{
int rowMax = matrix[i, 0];
int colIndex = 0;
// 找到当前行的最大值
for (int j = 1; j < matrix.GetLength(1); j++)
{
if (matrix[i, j] > rowMax)
{
rowMax = matrix[i, j];
colIndex = j;
}
}
bool isSaddlePoint = true;
// 检查该最大值是否是其所在列的最小值
for (int k = 0; k < matrix.GetLength(0); k++)
{
if (matrix[k, colIndex] < rowMax)
{
isSaddlePoint = false;
break;
}
}
// 如果是鞍点,则打印出来
if (isSaddlePoint)
{
Console.WriteLine($"Saddle point found at: Row: {i}, Column: {colIndex}, Value: {rowMax}");
}
}
}
}
```
在这个程序中,我们首先定义了一个3行4列的二维数组。然后使用`FindSaddlePoint`方法来查找鞍点。该方法首先遍历每一行,找到当前行的最大值及其索引。然后,对于每个找到的最大值,再遍历所有行来检查该值是否是对应列的最小值。如果这个条件满足,那么就找到了鞍点,并将其位置和值打印出来。
请注意,这个程序假设数组中的值范围在0到100之间,但这并不是查找鞍点所必须的。
阅读全文