gpt4 book ai didi

java - 数组循环程序

转载 作者:行者123 更新时间:2023-12-02 00:03:44 25 4
gpt4 key购买 nike

我应该编写一个程序来询问用户想要的行数。例如,如果用户输入 5,它将显示从 25 到 1 的所有数字,排列为 5 列和 5 行。如果输入 5,输出应该是这样的:

25  24  23  22  21
16 17 18 19 20
15 14 13 12 11
6 7 8 9 10
5 4 3 2 1

正如你所看到的,有一个模式。第一个出现的数字是该数字的平方。那么下一个数字就是数字的平方减1。直到达到21,减去5,得到16。然后加1,直到达到20。正如你所看到的,它就像一条蛇。

问题是它适用于任何数字,除了输入 1 时。输入1时,0为当前结果。

这是我当前的代码:请帮助我,谢谢

import java.util.*;
public class ArrayOutput2
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int number = 0;

System.out.print("Enter number of rows: ");
number = input.nextInt();

int[][] num = new int[number][number];
int k=1, i, j;

while(k< (number*number))
{
for(i=number; i>=1; i--)
{
if (i%2==1)
{
for(j=number-1; j>=0; j--)
{
num[i-1][j]=k;
k++;
}
}

else
for(j=0; j<=number-1; j++)
{
num[i-1][j]=k;
k++;
}
}
}

for(i=0;i<number;i++)
{
for(j=0;j<number;j++)

System.out.print(num[i][j]+"\t");
System.out.println();
}

}
}

最佳答案

假设用户输入1作为值,因此number == 1。您分配一个数组 num[1][1],这是一个只有一个可能的单元格的数组,number[0][0]

然后启动循环

k=1;
while (k<(number*number)); // which is like while(1<1*1)==FALSE

因此永远不会使用循环。您可以使用:

1) 至少运行一次循环的 do-while 循环
2) 或在 while() 循环结束后添加一个 if 语句:

// Using an IF statement immediately after the unmodified while()
if (number==1)
{
num[0][0]=1;
}


// or with a loop DO-WHILE
do
{
for(i=number; i>=1; i--)
{
if (i%2==1)
{
for(j=number-1; j>=0; j--)
{
num[i-1][j]=k;
k++;
}
}
else
for(j=0; j<=number-1; j++)
{
num[i-1][j]=k;
k++;
}
}
}while(k<(number*number));

关于java - 数组循环程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14337245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com