2014-10-25 8 views
0

화살촉을 인쇄하십시오. 그리려는 총 줄 수를 입력하여 화살표가 얼마나 커야하는지 입력하게하십시오. 사용자가 아래 예에서 9를 입력했습니다. 홀수 만 입력하라는 메시지를 표시합니다. 그것은이를 모델링해야합니다 중첩 for 루프를 사용하여 별의 화살촉 인쇄

* 
** 
*** 
**** 
***** 
**** 
*** 
** 
* 

지금까지 내 코드는 다음과 같습니다

int i, j, numRows; 
    Scanner reader=new Scanner(System.in); 

    System.out.println("How many rows would you like the triangle to have?"); 
    numRows=reader.nextInt(); 
    //row 
    for(i=1;i<=numRows;i++){ 
     //column 
     for(j=1;j<=i;j++){ 
      System.out.print("*"); 

     } 
     System.out.println(); 
    } 
} 

}

이 상단 절반이다. 중첩 루프를 변경하여 아래쪽 절반을 만들 수 있습니다. 중첩 된 루프가 중간 열에 도달 한 후 별의 양을 줄이거 나 (i/2) +1을 줄 필요가 있음을 알고 있지만이를 수행하는 방법을 모르겠습니다. 나는 j-와 함께 if 문을 사용하려고 시도했다. 열 루프의 내부이지만 올바르지 않거나 실수했다. 하단에

+0

코드 검토 사이트로 이동해야할까요? – PressingOnAlways

+2

@PressingOnAlways - 완전히 작동하지 않는 프로그램이므로 ** 그렇게 보이지 않습니다. –

답변

0

넣어이 :

for(i=numRows;i>=0;i--){ 
     for(j=i-1;j>0;j--){ 
      System.out.print("*"); 

     } 
     System.out.println(); 
} 
0

당신이 지금 가지고있는 것과 유사한 두 개의 중첩 루프를 사용할 수 있습니다. 내부 루프가 사용해야하는 시작 값과 루프 상태에 대해 생각하십시오.

0
int i, j, numRows; 
int modifier=1; 
Scanner reader=new Scanner(System.in); 

System.out.println("How many rows would you like the triangle to have?"); 
numRows=reader.nextInt(); 
//row 
for(i=1;i>0;){ 
    //column 
    for(j=1;j<=i;j++){ 
     System.out.print("*"); 

    } 
    System.out.println(); 

    if (i == numRows) { 
     modifier=-1; 
    } 
    i=i+modifier; 
} 
난 정말 당신의 숙제를하지 말아야 ...하지만 그들이 나를 해결하기위한 사소한 및 그렇다고 재미있어 사촌 난 항상이 질문에 빨려

...

내 교수는 항상 것 내가 가장 직접적인 방법으로 문제에 결코 대답하지 않았기 때문에 내가 이상하다고 생각한다. :)

0
public static void printStarArrow() { 
    int i = 0; 
    int j = 0; 
    int numRows = 0; 
    Scanner reader = new Scanner(System.in); 
    System.out 
      .println("How many rows would you like the triangle to have?"); 
    numRows = reader.nextInt(); 
    if (numRows <= 0 || numRows % 2 != 1) { 
     System.out.println("Please enter an odd number only."); 
     return; 
    } 
    // row 
    for (i = 1; i <= numRows; i++) { 
     if (i <= (numRows/2) + 1) 
      j = i; 
     else 
      j = --j; 
     printStar(j); 
    } 
} 

public static void printStar(int size) { 
    for (int i = 0; i < size; i++) { 
     System.out.print("*"); 
    } 
    System.out.println(""); 
} 
관련 문제