2014-02-10 2 views
-1

정수 "높이"와 char 인수 "c"를 사용하여 " X "는"높이 "문자이고 높이는"c "의 특수 문자입니다. 교수님은 두 개의 루프를 사용하여 수행 할 수 있다고 말합니다. 그러나 나는 그것이 더 이상 필요하다고 생각합니다. 사용자의 높이와 사용자의 문자를 사용하는 자바에서 "X"를 인쇄하는 방법

public static void printX(int height, char c) 

{ 
int i,j; 
int count=0; 

    for(i=0;i<height;i++) 
     { 
      count++; 
       for(j=0;j<count;j++) 
       { 
        System.out.print(" "); 

       } 
      System.out.print(c); 
      System.out.println(); 
     } 


} 

나는 단 하나 개의 대각선을 출력하는 코드를 작성하기 시작했고 내가 거기에서 그것을 할 방법을 알아낼 수 있는지 확인하기 위해 노력했지만, 난 그것을 알아낼 수 없습니다. 두 개의 for 루프를 사용하여이 작업을 수행 할 수 있습니까? 높이 = 7의 경우

+4

힌트를 고려하십시오. 'i'와'j' 값이 둘 중 하나의 방정식을 푸는 경우'c'를 출력하고, 그렇지 않으면 공백을 출력하십시오. – rgettman

+0

루프 밖에서'i' 또는'j'를 사용하지 않으면'for'-statement 안에 선언하십시오 : for (int i = 0; i

답변

0

, 당신이 원하는 :

x  x 
x x 
    x x 
    x 
    x x 
x x 
x  x 
  1. 제 1 회 라인 0 공백, 1 개 문자, 5 공백, 1 문자
  2. 제 2 라인은 1 공백, 1 개 문자, 3 공백은 1 문자
  3. 는 제 3 라인은 2 공백, 1 개 문자 1, 공백, 1 개 문자

는 패턴을 참조한다?

중간 라인은 특별합니다.

나머지는 상단과 동일한 패턴을 따르지만 그 반대입니다. x` -``Y = x`와 y = 높이 : 두 줄이 있습니다

0

는 여기에서 우리는 높이와 J = i와 j = 높이 나는

public class printCross{ 

public static void main (String[] arg){ 

    Scanner keyboard =new Scanner (System.in); 
    System.out.println(" Please type a number grater than 2 :"); 
    int num=keyboard.nextInt(); 
    drawCross(num); 

} 

private static void drawCross(int num) { 

int startCur = 0; 
int endCur = num-1; 
for (int i = 0; i < num; i++) 
{ 
for (int j = 0; j < num; j++) 
{ 
if (startCur == endCur && j == i) 
System.out.print('*'); 
else if (startCur == j || endCur == j) 
System.out.print('*'); 
else 
System.out.print(' '); 
} 
startCur++; 
endCur--; 
System.out.println(); 
} 
} 
관련 문제