C# 创建一个3x3矩阵,并在漩涡中按从小到大的顺序排列数字

C# 创建一个3x3矩阵,并在漩涡中按从小到大的顺序排列数字,c#,matrix,C#,Matrix,我想用输入数字创建一个3x3矩阵,然后将数字从小到大排序,然后像漩涡一样放置在矩阵中:1,2,3,4,5,6,7,8,9,然后将数字1放置到0.0位置,2到0.1,3到0.2,4到1.2,5到2.2,6到2.1,7到2.0,8到1.0,9到1.1 const int MATRIX_ROWS = 3; const int MATRIX_COLUMNS = 3; List<int> l = new List<int>(l);

我想用输入数字创建一个3x3矩阵,然后将数字从小到大排序,然后像漩涡一样放置在矩阵中:1,2,3,4,5,6,7,8,9,然后将数字1放置到0.0位置,2到0.1,3到0.2,4到1.2,5到2.2,6到2.1,7到2.0,8到1.0,9到1.1

const int MATRIX_ROWS = 3;
        const int MATRIX_COLUMNS = 3;
        List<int> l = new List<int>(l);

        double[,] matrix = new double[MATRIX_ROWS, MATRIX_COLUMNS];
        for (int i = 0; i < MATRIX_ROWS * MATRIX_COLUMNS; ++i)
        {
            int input;
            Console.Write("Enter value");
            while (!int.TryParse(Console.ReadLine(), out input))
            {
                Console.Write("Enter correct value!");
            }
            l.Add(input);
        }
        l.Sort();
        for (int i = 0; i < MATRIX_ROWS; i++)
        {
            for (int j = 0; j < MATRIX_COLUMNS; j++)
            {
                matrix[i, j] = l[i * 3 + j];
            }
const int MATRIX_ROWS=3;
const int MATRIX_COLUMNS=3;
列表l=新列表(l);
double[,]矩阵=新的double[矩阵_行,矩阵_列];
对于(int i=0;i

我开始这样做是为了获取输入数字,我想为第二部分提供帮助。

在我看来-您可以在开始的某个地方声明一个
列表l
,通过
l.Add(x);
读取整个数据,然后执行
l.Sort()
在对数据进行排序后,填写您的矩阵。如果您还有其他问题,请告诉我

所以你会得到类似的结果

const int MATRIX_ROWS = 3;
const int MATRIX_COLUMNS = 3;
List<int> l = new List<int>();

double[,] matrix = new double[MATRIX_ROWS, MATRIX_COLUMNS];
for (int i = 0; i < MATRIX_ROWS * MATRIX_COLUMNS; ++i)
{
        double input;
        Console.Write("Enter value");
        while (!double.TryParse(Console.ReadLine(), out input))
        {
            Console.Write("Enter correct value!");
        }
        l.Add(input);
}
l.Sort();
for (int i = 0; i < MATRIX_ROWS; i++)
{
    for (int j = 0; j < MATRIX_COLUMNS; j++)
    {
        matrix[i, j] = l[i*3 + j];
    }
}
const int MATRIX_ROWS=3;
const int MATRIX_COLUMNS=3;
列表l=新列表();
double[,]矩阵=新的double[矩阵_行,矩阵_列];
对于(int i=0;i
这将为您提供矩阵的“漩涡状”结果:

            List<int> nums = new List<int>();
            double[,] matrix = new double[3,3];
            for (int i = 0; i < 9; ++i)
            {
                double input;
                Console.Write("Enter value");
                while (!double.TryParse(Console.ReadLine(), out input))
                {
                    Console.Write("Enter correct value!");
                }
                nums.Add(int.Parse(input.ToString()));
            }
            nums.Sort();
            int block = 0;
            int[] order = new int[] { 0, 1, 2, 2, 2, 1, 0, 0, 1 };
            for (int i = 0 ; i < order.Length; i++)
            {
                switch (block)
                {
                    case 0:
                        matrix[block, order[i]] = nums[i];
                        if (i == 2)
                            block = 1;
                        break;
                    case 1:
                        if (i < order.Length - 3)
                        {
                            matrix[block, order[i]] = nums[i];
                            block = 2;
                        }
                        else
                            matrix[block, order[i]] = nums[i];
                        break;
                    case 2:
                        if(i == order.Length - 3)
                        {
                            matrix[block, order[i]] = nums[i];
                            block = 1;
                        }
                        else
                            matrix[block, order[i]] = nums[i];
                        break;

                }
            }

            Console.WriteLine("The Resulting Matrix is:");

            for (int row = 0, col = 0; row < 3; row++)
            {
                Console.WriteLine("row " + row + ": {0} - {1} - {2}", matrix[row, col], matrix[row, col + 1], matrix[row, col + 2]);
                col = 0;
            }
List nums=new List();
double[,]矩阵=新的double[3,3];
对于(int i=0;i<9;++i)
{
双输入;
控制台。写入(“输入值”);
而(!double.TryParse(Console.ReadLine(),out-input))
{
控制台。写入(“输入正确的值!”);
}
Add(int.Parse(input.ToString());
}
nums.Sort();
int block=0;
int[]顺序=新的int[]{0,1,2,2,2,1,0,0,1};
for(int i=0;i

编辑:现在它显示结果。

你能复制并粘贴我的代码,告诉我你将如何使用它吗,因为我不太习惯c#,我还在学习。谢谢。我确实编辑了我必须修改它的方式,但仍然有一个错误:列表l=新列表(l);使用未分配的局部变量(l),我如何解决这个问题呢?将kine更改为
List l=new List();
谢谢您的帮助。接受我的答案将不胜感激)我也尝试过,但这使我只能插入9个数字,然后什么也不做。有什么想法吗?矩阵变量将填充在“漩涡”中另外,如果您在for循环之后放置一个断点,您将看到它已正确填充。您可能希望显示结果,这就是您所说的“然后不做任何其他事情”。我将进行编辑以在屏幕上显示结果。@terrybozzio这正是我的意思。谢谢您,先生