2017-03-23 1 views
1

좋아요,이 다이아몬드 모양을 만들어야합니다. 일종의 다이아몬드 모양이지만 꼭대기 오른쪽 절반이 누락되고 아래쪽 절반이 누락되었습니다. 두 가지 모양이 아래쪽에 있지만 다이아몬드 모양의 모양으로 나타나지 않고 다른 모양 위에 하나씩 인쇄하고 있습니다.다이아몬드 모양이 정확하게 인쇄되지 않습니다

나는 어딘가에 있다고 가정하고 있습니다. 전체 하단 모양을 오른쪽으로 이동하려면 같은 양의 공백을 인쇄해야합니까? 문제에 여기

#include <iostream> 

using namespace std; 

int main() 
{ 
    int row, col, siz; 

    cout << "Enter the size of the diamond: " << endl; 
    cin >> siz; 

    cout << endl << endl; 


    for(row = 1; row <= siz; row++){ 

     for(col = 1; col <= siz; col ++){ 
     if(col <= siz - row){ 
      cout << " "; 
     } 
     else{ 
       cout << "@"; 
      } 
     } 
     cout << "\n"; 
    } 

    for(row = 1; row <= siz; row++){ 

     for(col = row; col <= siz; col++){ 
      cout << "@"; 
     } 
     cout << "\n"; 
    } 

    return 0; 
} 
+2

개발 환경에서 거의 확실하게 제공되는 디버거로 코드를 실행하면이 문제를 간단하게 해결해야합니다. – user4581301

+1

위쪽과 아래쪽의 간격을 다르게 처리하지 않았습니다. 여기에서보십시오 http://www.sitesbay.com/cpp-program/cpp-print-diamond-of-star. 그리고 여기에 질문을 게시하기 전에 솔루션에 대한 그물을 검색하는 것이 좋습니다. 솔루션을 검색하지 않고 링크를 제공 할뿐 아니라 더 빠른 솔루션을 얻을 수 있습니다. 먼저 직접 해보면 더 많은 것을 배울 수 있습니다. 더 많은 문제가 있다면 커뮤니티는 항상 당신을 도울 준비가되어 있습니다. 질문을 게시하는 동안 문제에 대한 해결책을 찾기 위해 자신의 연구를 보여줘야합니다. –

답변

0

내 솔루션 :

#include <iostream> 
using namespace std; 

int main() 
{ 
    int row, col, siz; 

    cout << "Enter the size of the diamond: " << endl; 
    cin >> siz; 

    cout << endl << endl; 

    // drawing top left side of diamon 
    for(row = 1; row <= siz; row++){ 
     for(col = 1; col <= siz; col ++){ 
     if(col <= siz - row){ 
      cout << " "; 
     } 
     else{ 
       cout << "@"; 
      } 
     } 
     cout << "\n"; 
    } 

    // drawing bottom right side of diamon 
    for(row = 1; row <= siz; row++){ 
     for(col = 1; col <= siz*2-row; col++){ 
      if(col<siz){ 
       cout << " "; 
      } 
      else{ 
       cout << "@"; 
      } 
     } 
     cout << "\n"; 
    } 

    return 0; 
} 

설명 : 하반기의 첫 번째 열은 첫 번째 'SIZ'시간 ''다음 'SIZ'시간 '을 그릴 수있다 @ '. 그래서 siz * 2를 반복해야한다. 그때부터 당신은 항상 'siz'time '을 가지고 있고 매번'@ '가 적어 지므로 루프가 어떻게 보일까요?

0

나는 내 대답을 공유하고 싶습니다. 당신은 다음과 같은 모양을 요구하고 있습니다.

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

그것은 오른쪽 상단과 왼쪽 하단 부분을 누락 다이아몬드 모양의

#include <iostream> 

using namespace std; 

int main() 
{ 
    int row, col, size; 

    cout << "Enter the size of the diamond: " << endl; 
    cin >> size; 

    for(row = 1; row <= size; row++){ 
    for (col = 1; col <= size; col++){ 
     if(col+row == (size/2)) 
     for(int i=0;i<row;i++) 
      cout <<"*"; 
     if(row >= size/2 && col >= size/2) 
     { 
      if(col + row < size+size/2) 
      cout <<"*"; 
     } 
     else 
     cout <<" "; 
    } 
    cout << endl; 
    } 

    return 0; 
} 

나는 당신이 도움이되기를 바랍니다.