Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要以矩阵的形式打印数组。在“a”中;蛇“;图案_Java - Fatal编程技术网

Java 需要以矩阵的形式打印数组。在“a”中;蛇“;图案

Java 需要以矩阵的形式打印数组。在“a”中;蛇“;图案,java,Java,如何使方阵以“蛇”的形式出现?用户输入数组中的行/列,然后矩阵按升序显示,但以蛇形模式显示 1 2 3 4 8 7 6 5 9 10 11 12 16 15 14 13 import java.util.Scanner; 公开课A3_Q2{ 公共静态void main(字符串[]args){ //TODO自动生成的方法存根 扫描仪键盘=新扫描仪(System.in); System.out.println(“[---------------------------]”);

如何使方阵以“蛇”的形式出现?用户输入数组中的行/列,然后矩阵按升序显示,但以蛇形模式显示

 1  2  3  4
 8  7  6  5
 9 10 11 12
16 15 14 13

import java.util.Scanner;
公开课A3_Q2{
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
扫描仪键盘=新扫描仪(System.in);
System.out.println(“[---------------------------]”);
System.out.println(“[Array Pattern]”);
System.out.println(“[---------------------------]”);
System.out.println(“您希望数组有多少行/列?(至少3):”;
int arraySize=keyboard.nextInt();
while(数组化<3)
{
System.out.println(“让我们再试一次…”);
System.out.println(“您希望数组有多少行/列?(至少3):”;
arraySize=keyboard.nextInt();
}
int[][]模式=新int[arraySize][arraySize];
整数=1;

对于(int i=0;i如果我们只想在每行上按从左到右的升序打印2D数组,我们可以使用以下
for
循环:

for (int i=0; i < arraySize; ++i) {
    for (int j=0; j < arraySize; ++j) {
        System.out.printf("%3d", pattern[i][j]);
    }
}
for(int i=0;i
为了获得您想要的逆序效果,我们只需要添加逻辑,以便对于奇数行,我们从左到右向后打印一行:

for (int i=0; i < arraySize; ++i) {
    if (i%2 == 0) {
        // for even rows, print as we normally would
        for (int j=0; j < arraySize; ++j) {
            System.out.printf("%3d", pattern[i][j]);
        }
    }
    else {
        // for odd rows, iterate backwards over the array, the print left to right
        for (int j=arraySize-1; j >= 0; --j) {
            System.out.printf("%3d", pattern[i][j]);
        }
    }
    System.out.println();
}
for(int i=0;i=0;--j){
System.out.printf(“%3d”,模式[i][j]);
}
}
System.out.println();
}
更新:

您可以使用以下方法初始化阵列:

int arraySize = 4;
for (int i=0; i < arraySize; ++i) {
    for (int j=0; j < arraySize; ++j) {
        pattern[i][j] = i*arraySize + j + 1;
    }
}
int-arraySize=4;
for(int i=0;i
请添加示例输入和输出。事实上,我在询问后立即尝试了此操作,但由于某些原因仍然无法正常工作。我将继续尝试解决此问题。感谢您的帮助,并让我知道我是正确的track@Mike也许重新加载你的页面,我在我的第一篇文章后做了一个小的编辑。我已经用IntelliJ在本地进行了测试,它是wWorks。也许你的代码还有其他问题。但是每次增加1的整数怎么办?我不理解你的问题。我给你的代码符合你最初给我们的要求。只是说在你的代码中你没有给数组赋值,所以当你打印时,你会得到全零
int arraySize = 4;
for (int i=0; i < arraySize; ++i) {
    for (int j=0; j < arraySize; ++j) {
        pattern[i][j] = i*arraySize + j + 1;
    }
}