我应该编写一个程序,询问用户想要的行数。例如用户输入5,它将显示从5列到5列排列的从25到1的所有数字。如果输入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时。 0是输入1时的当前结果。
这里是我当前的代码:请帮我谢谢
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那么(k <(1 * 1))永远不会为真,从而导致循环永不执行。 –
从用户输入'1'开始考虑你想要的输出。它是单个元素'1'被返回还是有一种模式? –
@AurA请注意,[家庭作业标签现在正在逐步淘汰,不能再使用](http://meta.stackexchange.com/questions/147100/the-homework-tag-is-now-officially-deprecated )。 – Gilles