【问题标题】:Printing a variable numbers in the same line, to go to the nexline after these variable number在同一行打印一个变量号,在这些变量号之后转到下一行
【发布时间】:2019-11-19 13:49:09
【问题描述】:

我想让用户输入一个列的长度。让我们说“4”。然后它应该像这样打印出来:

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

在 4 x 4 的正方形中。

我不希望我的代码接近我正在寻找的解决方案。这只是一个简单的打印输出行。但这需要一些必要的修改。

我该如何管理?


package MagicMatrix;

import java.util.Arrays;
import java.util.Scanner;

public class Matrix
{

    Scanner scanner = new Scanner(System.in);   

    public static void main(String[] args)
    {

        new Matrix();

    }

    public Matrix() 

    {

        System.out.println("Give column length of matrix\n");

        int var00 = 1;
        int columnlength = scanner.nextInt();

        int [][] matrix = new int [columnlength][columnlength];


        for (int i=0; i < columnlength; i++) 
        {
            for (int j=0; j < columnlength; j++ )
            {
                matrix[i][j] = var00;
                var00++;
            }
        }

        for (int i=0; i < colomnlength; i++) 
        {
            for (int j=0; j < colomnlength; j++ )
            {

            System.out.print(matrix[i][j]); // The big question!!!!

            }
        }
    }

}

【问题讨论】:

  • 与其倾倒大量代码,你能找出你的代码到底是什么不工作吗?
  • @Frontear 如果向下滚动,您会看到标有“大问题!!!”的行这就是需要进行一些调整的地方!
  • 请用您的错误陈述或您在构建逻辑时遇到的问题进行解释。
  • @Pulkit Jatav 目前打印大纲给出 12345678910111213141516 但我希望它像 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 在行和列中 4 x 4

标签: java arrays printing


【解决方案1】:

与您在问题中所说的相反,您实际上非常接近解决方案。您只需要用您的var00 替换var1(我不知道它是从哪里来的)并在内部循环之后(使用j 迭代的那个)添加一个System.out.println() 以转到下一行一排之后。理论上应该可行。

for (int i=0; i < columnlength; i++) 
    {
        for (int j=0; j < columnlength; j++ )
        {
            matrix[i][j] = var00;
            var00++;
        }
    }

for (int i=0; i < columnlength; i++)
    {
        for (int j=0; j < columnlength; j++ )
            {
                System.out.print(matrix[i][j] + " "); 
            }
        System.out.println();
    }

编辑:我注意到你调用了它一次 columnlength 和一次 colomnlength 你应该修复它。还要在matrix[i][j] 之后添加一个空格,方法是+ " ",这样数字之间就会有一点空格

【讨论】:

  • 哦谢谢伙计!!就是这样。 (关于那个 var00 和 var1 我在编辑我的问题时改变了它,但忘了全部改变)。但是你的建议很完美!!
  • @Twannemannn 很高兴我能帮上忙,如果有效,别忘了将其标记为正确答案
【解决方案2】:

你也可以通过只使用两个循环来实现这一点。

import java.util.Scanner;

public class Hello
{
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);   

    int columnlength = scanner.nextInt();

    int [][] matrix = new int [columnlength][columnlength];
    int counter = 1;

    for(int i = 0;i<columnlength;i++) {
        for(int j=0;j<columnlength;j++) {
            matrix[i][j] = counter;
            System.out.print(counter+++"\t");
        }
        System.out.println();
    }

}

}

【讨论】:

  • 用计数器填充矩阵可能不是他想要在结果程序中做的事情,而只是为了获得一些示例数据。在任何情况下,通常最好将不同功能的代码分开,例如填充矩阵并打印它,即使这会产生一点样板。
【解决方案3】:

不确定我是否完全理解您的问题,也许这会解决您的问题:

    for (int i=0; i < colomnlength; i++) 
    {
        System.out.print(matrix[i][0]);
        for (int j=1; j < colomnlength; j++ )
        {

            System.out.print(matrix[i][j]); // The big question!!!!

        }
        System.out.println();
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-10
    • 2016-06-23
    • 2016-12-10
    • 1970-01-01
    • 2017-05-30
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多