如何获得矩阵以打印我想要的东西

时间:2019-12-15 03:27:43

标签: c# multidimensional-array console.writeline

我对我的代码输出有疑问。我输入了1到12之间的数字,并且希望它显示

1 2 3 | 7 8 9

4 5 6 | 10 11 12

但显示

1 2 3 | 4 5 6

7 8 9 | 10 11 12

任何人都可以帮我解决这个问题,并可能解释为什么它没有显示出我的想象吗。对不起,我的英语不好。请记住,“红色”是行,“ kol”是列,“ dim”是三维。 “ |”符号只是一种显示哪些数字属于哪个矩阵的方法。希望你能理解!


int[,,] probnamatrica = new int[3, 2, 2];
         Console.WriteLine("Unesite elemente matrice");
         for(int dim=0;dim<probnamatrica.GetLength(2); dim++)
         {
             for(int kol=0; kol<probnamatrica.GetLength(1); kol++)
             {
                 for(int red=0; red<probnamatrica.GetLength(0); red++)
                 {
                     Console.Write("[{0} {1} {2}]", red, kol, dim);
                     probnamatrica[red, kol, dim] = int.Parse(Console.ReadLine());
                 }
             }
         }
         for (int dim = 0; dim < probnamatrica.GetLength(2); dim++)
         {
             for (int kol = 0; kol< probnamatrica.GetLength(1); kol++)
             {
                 for (int red = 0; red < probnamatrica.GetLength(0); red++)
                 {
                     Console.Write("\t " + probnamatrica[red, kol,dim]);
                 }
             }
             Console.WriteLine();
         }





1 个答案:

答案 0 :(得分:0)

我唯一看到的区别是空格从“ |”之前移动到之后。

我认为这是罪魁祸首:

Console.Write("\t " + probnamatrica[red, kol,dim]);

您要在\ t后面加上一个空格。当您似乎想要空格时,后跟\ t或“ \ t”。但是,我非常不确定\ t是如何导致垂直线的。

作为更一般的建议,您可能想使用按顺序排列所有12个数字的一​​维数组,一个循环,然后jsut分别在第3个和第6个数字上添加此特殊字符和换行符。您在此处编写的内容过于复杂且不够鲁棒。

这似乎是一项家庭作业,所以我将不提供代码。完全是一个FizzBuzz问题,字符已更改。 只是一般情况:Modulo Operator。如果除法的其余部分等于0,则可以被整除。