c ++高度和宽度的星形图案

时间:2017-05-03 07:06:10

标签: c++ loops

我想在C ++中开发以下模式。

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


 printf("Enter trunk height: ");
 scanf("%d", &trunk_height);
 printf("Enter trunk width: ");
 scanf("%d", &trunk_width);
 printf("Enter leaves width: ");
 scanf("%d", &leaves_width);
  

截断高度为9   trunc width = 5.
  叶子宽度是11。

我写了一些代码,但是没有用。我的问题是如何检测trunc的高度以及如何编写从用户那里获取信息的代码。

int main()
{
    int i, j;
    int x = 5;
    int y = 1;

    for(j = 1; j <= 5; j++)
    {
       for(i = 1; i <= x; i++)
       {
          cout << " ";
       }
       x--;

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

       cout << endl;
   }
}

1 个答案:

答案 0 :(得分:0)

请尝试以下代码:

#include<iostream>

using namespace std;

int main() {
    int height = 9, width = 5, leave = 11;

    // Print tree
    int stars = 1;
    for(int row = (leave + 2 - 1)/2; row >= 1  ; row--){
        cout<<string(row, ' ')<<string(stars, '*')<<endl;
        stars += 2;
    }

    // Print trunk
    int pos = (leave - width )/2 +1;
    for(int row = 0; row<height; row++){
        cout<<string(pos, ' ')<<string(width, '*')<<endl;
    }
}

输出:

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

Ideone link