C ++中的三角形钻石

时间:2015-02-06 03:39:19

标签: c++ c++11

我只是理解了用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;
}

}

1 个答案:

答案 0 :(得分: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;
    }
}

输出:

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