2012-11-14 3 views
2

이중 배열을 사용하여 5 x 10 테이블을 만들려고합니다. 첫 번째 상자는 비워 두어야하며 나머지는 2-50입니다.2에서 50까지 번호가 지정된 이중 배열 만들기

나는 지금까지 가지고 있지만 작동하지 않습니다.

int array[][] = new int[5][10]; 
     for(int row=1; row<5;row++){ 
     for(int col=1;col<10;col++) 
      array[row][col] = row*col;} 
     System.out.println(array); 

답변

1

row * col2 to 50에서 당신에게 연속적인 숫자를 줄 수 없다. 그리고 코드에서, 당신은 first box을 떠나는 것이 아니라, first rowfirst column을 완전히 생략 할 것입니다.

루프는 보통 0 to max에서 실행해야합니다. [0][0]의 경우 아무 것도 인쇄하지 마십시오.

2 to 50에서 인쇄하려면 2으로 시작되는 카운트 변수를 가지고 인쇄 한 후 1만큼 증가 시키십시오. 여기

는 수정 된 코드입니다 : -

int array[][] = new int[5][10]; 
int count = 2; 

for(int row=0; row<5;row++){ 
    for(int col=0;col<10;col++) { 
     if (row == 0 && col == 0) { 
      continue; 
     } 
     array[row][col] = count++; 
    } 
} 
for (int[] inner: array) { 
    System.out.println(Arrays.toString(inner)); 
} 

출력 : -

[0, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20] 
[21, 22, 23, 24, 25, 26, 27, 28, 29, 30] 
[31, 32, 33, 34, 35, 36, 37, 38, 39, 40] 
[41, 42, 43, 44, 45, 46, 47, 48, 49, 50] 

참고 : -

당신이 원하기 때문에 당신의 first box 공백으로하고, 할 수 있습니다 ' 여기서 Arrays.toString을 사용하십시오. 루프를 하나 더 사용하고 배열을 간단한 방법으로 인쇄해야합니다. 그리고 색인이 [0][0] 일 때 sysout("");

+0

그는 첫 번째 상자가 0 비어 있지 것이 요청했다. 그러므로'Arrays.toString'을 사용할 수 없습니다. – durron597

+0

@ durron597 .. 흠. 이 경우 루프를 하나 더 추가해야합니다. 그것은 단지 인쇄의 문제입니다. 나는 그것을 인용 할 것이다. 감사합니다 :) –

+0

당신은 하나 이상의 루프를 추가 할 필요가 없습니다, 나는 아래 코드에서 여분의 루프없이 그것을 했어 :) 루프 재사용! – durron597

1

첫 번째 상자는 비워 둘 수 없습니다 ... 0 일 수 있습니다. 원하는 것은 무엇입니까?

변경 :

  1. 사용 0 지수하지 1 인덱스
  2. 올바른 값이 아닌 내가
  3. row * col 아래에 쉼표를 인쇄 어디에 있는지, 수동으로 배열의 내용을 인쇄 할 수 있습니다 . row * 10 + col + 1

이 시도 사용

int array[][] = new int[5][10]; 
for(int row=0; row<5;row++){ 
    for(int col=0;col<10;col++) { 
     array[row][col] = row * 10 + col + 1; 
     if (array[row][col] < 2) { 
      System.out.print(" "); 
     } else { 
      System.out.print(array[row][col]); 
     } 
     if (col < 9) System.out.print(","); 
    } 
    System.out.println(); 
} 

출력은 :

,2,3,4,5,6,7,8,9,10 
11,12,13,14,15,16,17,18,19,20 
21,22,23,24,25,26,27,28,29,30 
31,32,33,34,35,36,37,38,39,40 
41,42,43,44,45,46,47,48,49,50 
+0

실제로'행 기반 * 10 + col + 1' -> '1 추가'가 필요합니다. 왜냐하면 '0 기반 색인'을 가지고 있기 때문입니다. –

+0

@ durron597 .. 나는 당신이 한 변화에 따라 결과를 바꿀 것을 제안합니다. 코드에서.귀하의 현재 출력은 내가 제안한 변경 전의 것입니다. –

관련 문제