2015-02-06 4 views
0

별표로 만들어진 C++에서 삼각형을 만드는 개념을 이해했습니다. 별표를 "별표 다이아몬드"로 대체하려고 했으므로 매우 논리 오류가 발견되어 "개행"이므로 더 이상 찾을 수 없으므로 누구든지 나를 도와 줄 수 있습니까 내 코드로 무엇을 할 수 있습니까? 별표가있는 삼각형과 같은 출력을 원하지만 별표는 별표로 된 다이아몬드로 대체됩니다.C 삼각형의 다이아몬드

#include<iostream> 
using namespace std; 
int main() 
{ 
int number, space1, space2, space3; 
int i, j, x, y, z; 
cout << "Enter any number: "; 
cin >> number; 
space1 = (2*number)-1; 
space2 = number-1; 
space3 = space1*space2; 
z = number-1; 
for(i = 1; i <= number; i++) 
{ 
    for(j = 1; j <= (2*i)-1; j++){ 
    for (x = 1; x <= number; x++) 
    { 
     for(y = 1; y <= space3; y++) 
     { 
      cout << " "; 
     } 
     for(y = 1; y <= number-x; y++) 
     { 
      cout << " "; 
     } 
     for(y = 1; y <= (2*x)-1; y++) 
     { 
      cout << "*"; 
     } 
     for(y = 1; y <= z; y++) 
     { 
      cout << " "; 
     } 
     z--; 
     if(x <= number) 
     { 
      cout << endl; 
     } 
    } 
    if(z >= 3) 
    { 
     z = 1; 
    } 
    for(x = 1; x <= number-1; x++) 
    { 
     for(y = 1; y <= space3; y++) 
     { 
      cout << " "; 
     } 
     for(y = 1; y <= x; y++) 
     { 
      cout << " "; 
     } 
     for(y = 2*(number-x)-1; y >= 1; y--) 
     { 
      cout << "*"; 
     } 
     for(y = 1; y <= z; y++) 
     { 
      cout << " "; 
     } 
     z++; 
     if(x <= number) 
     { 
      cout << endl; 
     } 
    } 
    } 
    space3 -= space1; 
} 

}

+0

*는 * "사용자 입력이, 내가 원한다면 내 출력은 다음과 같이한다."- 당신의 결과물이 무엇인가? 어떻게 다릅니 까? 그리고 그것이 잘못 될 것이라고 생각하십니까? 고칠 수없는 것은 무엇입니까? 디버거를 사용해 보셨습니까? 어떻게 2가되어야하는지에 대한 설명이 주어지지 않으면 n3이나 n4에 대해 코드가 원하는 것을 이해할 수 있을까요? –

+0

C++/CLI, C++ Builder 또는 Objective-C++를 사용하고 있습니까? – immibis

+0

내가 만든 공간은 괜찮습니다. 여기있는 유일한 문제는 모든 다이아몬드에서 줄 바꿈을 제거하는 것입니다. 감사. – ILoveYouVirus

답변

0

당신이 ’ 정말 (다이아몬드입니까? 별표) – 원하는 출력의 몇 가지 예를 묻는 재 도움이 수 있는지 확실하지! –하지만이 프로그램을 좋아한다 :

#include <iostream> 
#include <string> 
using namespace std; 

auto main() -> int 
{ 
    for(int y = 0; y < 32; ++y) 
    { 
     cout << string(32 - y, ' '); 
     for(int x = 0; x < 32; ++x) 
      cout << (x & ~y? ' ' : '*') << ' '; 
     cout << endl; 
    } 
} 

출력 :

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

+0

'auto main() -> int'와'int main()'의 차이점은 무엇입니까? – immibis

+0

@immibis :'auto' 문법은 C++ 11에서 소개되었습니다. 그것은 많은 장점이 있습니다. –

+1

나는 그것을 안다. 'int main()'에'auto main() -> int'를 사용할 때의 주된 점은 무엇입니까? – immibis