2012-06-28 4 views
2

안녕하세요, 사용자 입력을 기반으로 2 차원 배열을 자동으로 채우려 고합니다. 사용자가 1 개의 숫자를 입력하면이 숫자는 2 차원 배열의 크기를 설정합니다. 그런 다음 배열의 번호를 인쇄하고 싶습니다. 사용자가 숫자 4를 입력하면 예를 들어 입니다. 2 차원 배열은 4 행 4 열이며 1에서 16까지의 숫자를 포함해야하며 다음과 같이 인쇄하십시오.숫자로 2 차원 배열을 채우는 방법

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

하지만이 작업을 수행 할 올바른 진술을 생각하는 데 어려움을 겪고 있습니다. 내 코드가 *를 포함하는 2 차원 배열을 출력하는 순간입니다.

숫자를 인쇄 할 수있는 방법에 대한 아이디어가 있으십니까? 정말 고생했습니다. 내 코드는 다음과 같습니다 당신이 숫자 배열을 채우기 위해 모두의 첫번째

public static void main(String args[]){ 

    Scanner input = new Scanner(System.in); 
    System.out.println("Enter room length"); 

    int num1 = input.nextInt(); 
    int num2 = num1; 
    int length = num1 * num2; 
    System.out.println("room "+num1+"x"+num2+"="+length); 

    int[][] grid = new int[num1][num2]; 

    for(int row=0;row<grid.length;row++){ 
     for(int col=0;col<grid[row].length;col++){ 
      System.out.print("*"); 
     } 
     System.out.println(); 
    } 
} 
+0

배열'grid'에 올바른 숫자를 넣는 방법을 묻고 있습니까? – Ankit

답변

4

읽기 n 값,

int[][] arr = new int[n][n]; 
int inc=1; 
for(int i=0;i<n;i++) 
for(int j=0;j<n;j++) 
{ 
arr[i][j]=inc; 
inc++; 
} 
+0

의견을 보내 주신 모든 분들께 감사드립니다. 그리고 내가 원하는대로 작동하도록했다. – derek

1

음. 이 for 루프와 inner for 루프의 각 루프 이후에 증가하는 카운터 변수를위한 double for 루프를 사용할 수 있습니다.

int counter = 1; 
for(int x = 0; x < num1; x++) 
{ 
    for(int y = 0; y < num2; y++) 
    { 
     grid[x][y] = counter++; 
    } 
} 

나중에 double for 루프를 사용하여 배열을 다시 출력 할 수 있습니다.

+0

도움을 주셔서 감사합니다. 나는 이것과 비슷한 것을 시도했다. for 루프 안에 카운터 변수를 선언했다. – derek

0

나는 당신이 옳은지 잘 모르겠다. 코드 인쇄 *에 문제가 있습니까?

예, 그 이유는이

System.out.print("*"); 

일해야하는 경우

System.out.print(grid[row]); 
0
public static void main(String[] args) { 

    Scanner input = new Scanner(System.in); 
    System.out.println("Enter room length"); 
    int arraySize = input.nextInt(); 
    System.out.println("Length: " + (arraySize*arraySize)); 

    int[][] array = new int[arraySize][arraySize]; 
    int count = 1; 

    for (int i=0;i<arraySize;i++) { 
     for (int j=0;j<arraySize;j++) { 
      array[i][j] = count; 
      if (j != (arraySize-1)) 
       System.out.print(count + "-"); 
      else 
       System.out.println(count); 
      count++; 
     } 
    } 
} 

이 코드는를 인쇄한다 당신이 그들을 어떻게 원하는지를 나타냅니다.

+1

루프 내의'if' 결정은'3'보다는'arraySize - 1'을 사용해야합니다. – Baz

+0

오, 감사 드리며 편집 해 드리겠습니다. – Rossiar

관련 문제