2011-03-25 4 views
0

사다리꼴을 인쇄하려고하지만 어떤 이유로 삼각형이 계속되거나 사다리꼴 크기가 잘못되었습니다. 누군가가 무엇이 잘못되었거나 누락 된 부분이 있는지 알려주실 수 있습니까? 귀하의 도움을 크게 주시면 감사하겠습니다. 상단 행/기준 및 높이에 대한 고유 한 값을 입력 할 수있는 방법이 있습니까? 나는 나의 신장을 입력하고, 나는 적당한 신장을 얻지 않는다.C++ 프로그램 : 입력 리디렉션을 사용하여 사다리꼴 인쇄

for (i = 1; i < trapeH; i++) 
{ 
    for (k = spacesT-1; k > 0; k--) 
    { 
     cout << " "; 
    } 

    spacesT = spacesT - 1; 

    for (j = 1; j <= (2*i + 1); j++) 
    { 
     cout << "*"; 
    } 

    cout << endl; 
} 
+0

'trapeH'와'spacesT'를 처음 시작할 때 어떻게 설정합니까? – John

+0

샘플 입력과 그에 따른 사다리꼴 모양을 알려주십시오. – Nathanael

답변

1

trapeHspacesT에 대한 입력 값은 무엇인가? 당신의 매개 변수는 높이이며이 수정 된 소스 그것은 사다리꼴 여기


입니다입니다 -

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

그래서 그것을 작동하는 것 같다 :

나는 출력 다음 모두 10을 사용하고있어 맨 윗줄의 폭 :

void trapezoid (int width, int height) 
{ 
    for (int row = 0; row < height; ++row) { 
     for (int col = height - row; col > 0; --col) { 
     cout << " "; 
     } 
     for (int col = 0; col < (width + 2 * row); ++col) { 
     cout << "*"; 
     } 
     cout << endl; 
    } 
} 
+0

상단 행과 높이에 대한 값을 입력하려고합니다. 그러나 높이를 변경하거나 'trapeH'를 입력하면 올바르게 높이가 떨어집니다. 'spaceT'나는 사다리꼴 모양을 만들기 위해 공백을 출력하는 코드에 넣었다. – Annerzz

+0

그래서 상단 행의 길이 (별의 개수)와 높이를 입력 변수 (대신 trapeH 및 spacesT)로 유지 하시겠습니까? – MacGucky

+0

네, 맞습니다. @ Nathanael 오 오케이. 명확하게 해 주셔서 감사합니다. 아직 프로그래밍 초보자 인만큼 맨발로 나와주세요. – Annerzz

1
for (j=1; j <=(2*i+1); j++) 

이 라인은 사다리꼴이 항상 너비 3에서 시작하여 각 라인마다 2 * 증가한다는 것을 보장합니다. 가변 폭의 사다리꼴을 원한다면 추가 변수를 도입해야합니다.

그러나 MacGucky가 지적한대로 사다리꼴이 있습니다.

편집 :

당신의 사다리꼴의 높이가 trapeH 될 것입니다 - 당신은 내가 10 루프가 종료하게됩니다 = 이후 trapeH = 10, 당신은 루프를 통해 9 번 갈거야 설정 한 경우 1.

관련 문제