2012-11-05 1 views
6

이것은 숙제입니다 : char [] []를 반환하는 cage (char [] [] arr)라는 공개 메서드를 만드는 방법입니다. 이 메서드는 2D 배열로 표시된 격자의 테두리를 따라 X를 배치해야합니다. 또한 모든 막대에 대해 하나의 열을 건너 뛰고 배열의 열을 따라 "막대"를 배치해야합니다. 도착 8 열이있는 경우, 예를 들어, 복귀 배열은 다음과 같다 :감옥 막대 모양으로 X를 배치하는 cage라는 정적 메서드로 자바 클래스를 만드는 방법은 무엇입니까?

X X X X X X X 
X X X X 
X X X X 
X X X X X X X 

내 다른 형상이되었다 아래 지정된 정적 방법으로 자바 클래스 ArrayArt 생성 : 공개 메소드 호출 프레임 (숯 [이 ] [] arr) char [] []를 반환합니다. 메서드는 2D 배열로 표시된 격자의 테두리를 따라 X를 놓아야하며 그 배열을 반환해야합니다. 편곡은 4 열 4 개 행이있는 경우, 예를 들어, 결과 배열은 다음과 같아야합니다

public class ArrayArt{ 
    public static void main(String[] args){ 
     printArray(frame(4,4)); 

} 

// frame printing 
public static char[][] frame(int n, int m){ 
    char[][] x=new char[n][m]; 

    for(int row=0;row<x.length;row++) 
     for(int col=0;col<x[row].length;col++) 
      if(row == 0 || row == n-1 || row == col+row || row == (row+col)-(m-1)) 
       x[row][col]= 'X'; 
      else 
       x[row][col]= ' '; 

    return x;  
} 

//printArray   
public static void printArray(char[][] arr){ 
    for(int row=0;row<arr.length;row++){ 
      for (int col=0;col<arr[row].length;col++) 
       System.out.print(" "+arr[row][col]); 
      System.out.println(); 

} 
} 

} 
+0

@Bart 정보에 감사드립니다. 그 사실을 알지 못했습니다. (설명에 대문자로 표기되어 있습니다 .-). 어떤 대체물이 있습니까? – Christoph

답변

4

가 그냥 다른 조건 후이 코드를 추가

----jGRASP exec: java ArrayArt 

    X X X X 
    X  X 
    X  X 
    X X X X 

----jGRASP: operation complete. 

프레임 인쇄를위한 소스 코드가 옆에 :

for(int i=1;i<x[row].length;i++)if(col == i*2)x[row][col]= 'X'; 

멋지다! 행운을 빕니다!