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();

posted @ 2016-10-02 11:22  fantasy2121  阅读(180)  评论(0)    收藏  举报