二维数组(区分列与行)?

时间:2011-11-29 15:27:04

标签: java

我是java的新手。我正在尝试写一个二维数组,写出一张彩票(6个整数)10次

int[][] lottery = new int[6][10];

for (int i=0; i < lottery.length; i++)
 for (int j=0; j < lottery[0].length; j++)  
  lottery[i][j] = (int)(50.0 * Math.random());

for (int i=0; i < lottery.length; i++)
 for (int j=0; j < lottery[0].length; j++)      
 {
  /*if i < lottery.length
  System.out.print(lottery[i][j] + " ");
  else
  System.out.println(lottery[i][j]);*/
 }  

如何将其写成10行6个整数

23 12 31 49 3 17 
9 1 22 13 36 50
.
.
.

3 个答案:

答案 0 :(得分:3)

你的阵列倒退了。如果您希望能够使用嵌套的for循环输出10行6个数字,则需要将数组设为int lottery[][] = new int[10][6];

然后输出它,你只需要做:

for (int i=0; i < lottery.length; i++){
 for (int j=0; j < lottery[i].length; j++){
    System.out.print(lottery[i][j]+"");
    if(j < lottery[i].length -1){
      System.out.print(" ");
    }
 }
 System.out.print("\n");
} 

对System.out.print的调用将打印没有换行符的文本,因此您可以继续追加到同一行。

答案 1 :(得分:0)

Java(如C),在Row-major order中存储多维数组。根据您的心态,这可能看起来很自然,但只记得数组是[row][col]引用的,而不是[col][row]

您的数组int[][] lottery = new int[6][10];是6行,每行10列。根据您的描述,我认为您需要10行或6个col或int[][] lottery = new int[10][6];

然后打印出来:

for (int i=0; i < lottery.length; i++) 
{
     for (int j=0; j < lottery[0].length; j++)      
     {
          if (j < (lottery[0].length+1)
          { 
              System.out.print(lottery[i][j] + " ");
          }
          else
          {
              System.out.println(lottery[i][j]);
          }
     } 
 }

答案 2 :(得分:0)

10行6个整数:

int[][] lottery = new int[10][6];

格式化打印:

for(int row=0; row<nums.length; row++) {
    for(int col=0; col<nums[row].length; col++) {
        System.out.printf("%2d", nums[row][col]);
    }
    System.out.print("\n");
}

Go through the title "Format String Syntax" here.