我應該編寫一個程序,詢問用戶想要的行數。例如,用戶輸入4作爲number
它將顯示以4列和4行排列的從1到16的所有數字。如果輸入4,應該是輸出:數組循環程序邏輯
1 2 3 4
8 7 6 5
9 10 11 12
16 15 14 13
正如您所看到的那樣存在一種模式。第一個出現的數字是1,然後它增加到4.下一行開始8,然後到5.正如你所看到的,它就像一條蛇。但是我的程序不工作。雖然我嘗試模擬我的程序,但我仍然無法弄清楚什麼是錯的。
另一個例子是進入3時:
1 2 3
6 5 4
7 8 9
這裏是我當前的代碼:請幫我謝謝
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;
if (number == 1)
{
num[0][0] = 1;
}
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=number-1;i<0;i--)
{
for(j=number-1;j<0;j--)
System.out.print(num[i][j]+"\t");
System.out.println();
}
}
}
什麼是y你的意思是不工作?你看到什麼輸出或錯誤? – cowls
[數組循環程序]的可能重複(http://stackoverflow.com/questions/14337245/array-looping-program) –
不知道你甚至需要一個多維數組。只需一個簡單的循環,並在達到輸入限制時再做一個新行。 – enkor