c#编程实现马鞍的CT扫描数据采集器
//做一个马鞍的CT扫描数据采集器
//用随机函数作为采集数据的传感器
//二维数组作为数据的暂时存储器,并判断产生的二维数组中的数据符合下面的规定
//存在这样的行,其行上的最大值在所在的列是最小的
//这样的数组称为马鞍的扫描断面。
//第一步:先生成一个10X10的二维数组
const int FirstDe = 6, SecondDe = 7;//定义成常量方便更改数据
int[,] MaAn = new int[FirstDe, SecondDe]; //声明一个二维数组,来存放生成的数据
Random rd = new Random(); //造一个随机数生成器
bool IsMin = true;//定义布尔值为真
//想要的到我们想要的,可能需要多次试验,得到多组数据,这里我们用到循环,当结果为真执行循环
while (true)
{
IsMin = true;//定义布尔值为真
Console.Clear();//每次执行完程序清屏
//生成数组需要用到循环
int row, column;//声名两个int型变量分别记录行数和列数
//外层循环来记录行
for (row = 0; row < FirstDe; row++)
{
//内层循环记录列
for (column = 0; column < SecondDe; column++)
{
MaAn[row, column] = rd.Next(10, 100);//随机生成数组的值大小在10到99的数
Console.Write("[{0},{1}]={2} ", row, column, MaAn[row, column]);//将随机生成的数组显示在屏幕上
}
Console.WriteLine("");//这里是空一行的意思,也可以写成Console.Write("\n");
}//row
//第二步:对数据进行分析
//先对行进行分析,要想的到每行中最大的数,我们需要逐行扫描
//row从0--9,对指定的行进行扫描,我们这里用到循环
for (row = 0; row < FirstDe; row++)
{
IsMin = true;
column = 0;//先对column初始化
//判断是不是row行的最大值,我们先定义一个最大值Max为第row行第0列;
int Max = MaAn[row, 0];
//从第0行开始比较每一行上所有数的大小,需要用到循环
//指定第0列为最大数,判断这行其它数比它大吗,如果比它大,我们将大的值赋给Max,并输出该列
int AtColumn = 0; //定义一个AtColumn来输出最大值所在的列
for (column = 1; column < SecondDe; column++)
{
if (MaAn[row, column] > Max)
{
Max = MaAn[row, column];
AtColumn = column;
}
}
//在AtColumn列上分析Max是不是最小的
int i;//再定义一个变量i来记录行数
for (i = 0; i < FirstDe; i++)
{
if (MaAn[i, AtColumn] < Max)
{
IsMin = false;
break;
}
}
//第三步:判断IsMin的值是true还是false,如果是true,则跳出该循环
if (true == IsMin)
{
Console.Write("[{0},{1}]", row, AtColumn);
break;
}
}//row
if (IsMin)
break;
}//while
Console.ReadKey();

浙公网安备 33010602011771号