2012-02-08 1 views
1

이 프로그램을 완료하는 데 어려움이 있습니다. 나는 asterik을 생성하는 프로그램을 만들려고 노력하지만 삼각형으로 만듭니다.Java에서 초보자 - 출력 제어 - Asterix 생성

이것은 내가 이미 가지고있는 것입니다.

public class 12345 { 
    public static void main(String[] args) { 
     int n = 0; 
     int spaces = n; 
     int ast; 

     System.out.println("Please enter a number from 1 - 50 and I will draw a triangle with these *"); 

     Scanner keyboard = new Scanner(System.in); 
     n = keyboard.nextInt(); 

     for (int i = 0; i < n; i++) { 
      ast = 2 * i + 1; 

      for (int j = 1; j <= spaces + ast; j++) { 
       if (j <= spaces) 
        System.out.print(' '); 
       else 
        System.out.print('*'); 
      } 

      System.out.println(); 
      spaces--; 
     } 
    } 
} 

그것은 asteriks를 생성하지만, 어떻게 ... 그들은 삼각형을 곳을 계속 할 수있을 것입니다 그래서 그들은 그때 작은 그들이 가서 더 크게, 그리고 ...

감사 너 미리!

+1

숫자로 시작하는 클래스 이름은 허용됩니까 ???? ????? – Shekhar

+0

마름모 같은 구조를 만들고 싶습니까? – vikiiii

+0

에서 시작하여 '직각 삼각형'을 만듭니다. – Azodious

답변

1

시도 n의 값이 표준 입력을 읽은 후

int spaces = n; 

이동.

이렇게하면 문제의 절반을 해결하고 올바른 방향으로 이동하게됩니다.

+0

그건 그냥 다이아몬드의 절반을 해결할 것입니다 (상단 삼각형이 인쇄됩니다) – Kris

+0

네,하지만 이것은 숙제 일 가능성이 높기 때문에 저는 그를 올바른 방향으로 조금씩 움직이기를 원했습니다. 그러나 당신 말이 맞습니다. 나는 그것에 대해 더 명백하게하기 위해 나의 대답을 업데이트 할 것이다. –

+0

이미 삼각형의 절반을 인쇄합니다. 나는 전체 삼각형을 만드는 곳으로 만드는 법을 스스로 가르치려고 노력하고있다. – LOVEHOPE

0

코드에 몇 가지 사항을 추가하여 스캐너에 입력 된 숫자가 하단 행에 인쇄 된 별표 수인 전체 삼각형을 인쇄하도록했습니다. 나는. 입력 값이 3이면 삼각형은 1-> 3의 두 행이됩니다. 입력이 5이면 삼각형은 1 -> 3 -> 5의 3 행이됩니다.

public static void main(String[] args) { 
     int ast; 
     int reverse = 1; 

     System.out.println("Please enter a number from 1 - 50 and I will draw a triangle with these *"); 

     Scanner keyboard = new Scanner(System.in); 
     int spaces = keyboard.nextInt(); 


     for (int i = 0; i < spaces; i++) { 
      ast = 2 * i + 1; 

      for (int j = 1; j <= spaces + ast; j++) { 
       if (j <= spaces) { 
        System.out.print(' '); 
       } else { 
        System.out.print('*');} 
       if (j > spaces + ast) { 
        for (int k = 0; k < spaces-(reverse-1); k++) { 
         System.out.print(' '); 
        } 
       } 
       int k = 0; 
       reverse++; 

      } 

      System.out.println(); 
      spaces--; 
     } 
    } 
} 

변수 j가 첫 번째 루프 조건을 초과 할 때 트리거되는 if-else 뒤에 다른 if 문을 추가했습니다. 이것은 기본적으로 첫 번째 if 문을 반복하여 출력 선을 대칭으로 만드는 또 다른 루프를 트리거합니다.

희망 하시겠습니까? =)