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 に答える