0

所以基本上我必须使用 for 循环来制作这种模式:

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

two blank lines

   **********
    *********
     ********
      *******
       ******
        *****
         ****
          ***
           **
            *
Two blank lines
            *
           **
          ***
         ****
        *****
       ******
      *******
     ********
    *********
   ********** 

我不太确定是否需要将 * 定义为变量。我知道我需要使用增量和减量来实现这一点,并且还需要使用理由来正确排列它。一些反馈和帮助将不胜感激。谢谢!

4

2 回答 2

1

这类问题是教你如何将一个问题分解为更小的问题,以创建可用于多种模式的代码。

例如,您可以编写一个打印一行的函数

void PrintLine(int length)

你可能想指定你想要左边还是右边的线

void PrintLine(int length, bool left)

然后剩下的就是制作特定于您要显示的形状的循环条件。

于 2012-09-02T20:06:05.967 回答
-1

对于第一个形状:

int one=1;
boolean doit=true;
int counter=0;

while(doit)
{
  printf("\n");
  counter+=one;
  for(int i=0;i<counter;i++)
  {
      printf("*");
  }
  if(counter>maxi)
  {
      printf("\n");
      for(int i=0;i<counter;i++)printf("*");
      one=-one;
  }
  if(counter==0)doit=false;

}
于 2012-09-02T19:45:02.603 回答