c#语言-找一找一个二维数组中的鞍点
/*. 编写程序,找一找一个二维数组中的鞍点(即该位置上的元素值在行中最大,在该列上最小。有可能数组没有鞍点)。要求:
� 二维数组的大小、数组元素的值在运行时输入;
� 程序有友好的提示信息
*/
//于博 20171010
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _20153236_sy1_5
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请选择:1.输入二维数组 0.退出");
int flag = int.Parse(Console.ReadLine());
while (flag == 1)
{
Console.WriteLine("请输入二维数组的行数:");
int row = int.Parse(Console.ReadLine());
Console.WriteLine("请输入二维数组的列数:");
int column = int.Parse(Console.ReadLine());
float[,] a = new float[row, column]; //创建该二维数组
Console.WriteLine("请输入二维数组元素:");
for (int i = 0; i < row; i++) //每行循环
{
for (int j = 0; j < column; j++) //每列循环
{
Console.WriteLine("请输入第{0}个数:",i*row+j+1);
a[i, j] = float.Parse(Console.ReadLine());
}
}
int count= 0; //计数器
for (int i = 0; i < row; i++) //行循环
{
int maxj = 0; //初始化该行最大的值所在列
for (int j = 0; j < column; j++) //查找该行最大值的所在列
{
if (a[i, j] > a[i, maxj])
{
maxj = j; //把每行中最大的列号赋给maxj
}
}//找到该行最大数
int minx = 0; //初始化该行最大的值所在列中最小的值所在行
for (int j = 0; j < row; j++) //查找该行最大值的所在列中该列的最小值
{
if (a[j, maxj] < a[minx, maxj])
minx = j;
}//找到该行最大数所在列的最小值
if (a[i, maxj] == a[minx, maxj])//判断该行最大数所在列的最小值的行号是否为该行
{ Console.Write("鞍点[{0},{1}]:{2}"+'\n',minx,maxj,a[minx,maxj]); count++; }
}//行循环结束
if (count== 0) Console.WriteLine("没有鞍点数");
else
{
Console.WriteLine("鞍点总数为:" + count);
}
Console.WriteLine("请选择:1.输入二维数组,0.退出");
flag = int.Parse(Console.ReadLine());
if (flag == 0) Console.WriteLine("欢迎下次使用!!!");
}//while循环结束
}
}
}

� 二维数组的大小、数组元素的值在运行时输入;
� 程序有友好的提示信息
*/
//于博 20171010
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _20153236_sy1_5
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请选择:1.输入二维数组 0.退出");
int flag = int.Parse(Console.ReadLine());
while (flag == 1)
{
Console.WriteLine("请输入二维数组的行数:");
int row = int.Parse(Console.ReadLine());
Console.WriteLine("请输入二维数组的列数:");
int column = int.Parse(Console.ReadLine());
float[,] a = new float[row, column]; //创建该二维数组
Console.WriteLine("请输入二维数组元素:");
for (int i = 0; i < row; i++) //每行循环
{
for (int j = 0; j < column; j++) //每列循环
{
Console.WriteLine("请输入第{0}个数:",i*row+j+1);
a[i, j] = float.Parse(Console.ReadLine());
}
}
int count= 0; //计数器
for (int i = 0; i < row; i++) //行循环
{
int maxj = 0; //初始化该行最大的值所在列
for (int j = 0; j < column; j++) //查找该行最大值的所在列
{
if (a[i, j] > a[i, maxj])
{
maxj = j; //把每行中最大的列号赋给maxj
}
}//找到该行最大数
int minx = 0; //初始化该行最大的值所在列中最小的值所在行
for (int j = 0; j < row; j++) //查找该行最大值的所在列中该列的最小值
{
if (a[j, maxj] < a[minx, maxj])
minx = j;
}//找到该行最大数所在列的最小值
if (a[i, maxj] == a[minx, maxj])//判断该行最大数所在列的最小值的行号是否为该行
{ Console.Write("鞍点[{0},{1}]:{2}"+'\n',minx,maxj,a[minx,maxj]); count++; }
}//行循环结束
if (count== 0) Console.WriteLine("没有鞍点数");
else
{
Console.WriteLine("鞍点总数为:" + count);
}
Console.WriteLine("请选择:1.输入二维数组,0.退出");
flag = int.Parse(Console.ReadLine());
if (flag == 0) Console.WriteLine("欢迎下次使用!!!");
}//while循环结束
}
}
}
有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。