Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

中空のピラミッドとダイヤモンドのパターンを印刷するCプログラム


ここでは、Cを使用して中空のピラミッドとダイヤモンドのパターンを生成する方法を説明します。中実のピラミッドパターンを非常に簡単に生成できます。中空にするために、いくつかのトリックを追加する必要があります。

中空ピラミッド

最初の行のピラミッドには1つの星が印刷され、最後の行にはn個の星が印刷されます。他の行の場合、行の開始と終了に正確に2つの星が印刷され、これら2つの開始の間に空白があります。

サンプルコード

#include <stdio.h>
int main() {
   int n, i, j;
   printf("Enter number of lines: ");
   scanf("%d", &n);
   for(i = 1; i<=n; i++) {
      for(j = 1; j<=(n-i); j++){ //print the blank spaces before star
         printf(" ");
      }
      if(i == 1 || i == n){ //for the first and last line, print the
         stars continuously
         for(j = 1; j<=i; j++) {
            printf("* ");
         }
      } else {
         printf("*"); //in each line star at start and end
         position
         for(j = 1; j<=2*i-3; j++) { //print space to make hollow
            printf(" ");
         }
         printf("*");
      }
      printf("\n");
   }
}

出力

Enter number of lines: 20
                                         *
                                       *   *
                                      *     *
                                     *       *
                                    *         *
                                   *           *
                                  *             *
                                 *               *
                                *                 *
                               *                   *
                              *                     *
                             *                       *
                            *                         *
                           *                           *
                          *                             *
                         *                               *
                        *                                 *
                       *                                   *
                      *                                     *
                     * * * * * * * * * * * * * * * *  * * *  * 

中空ダイヤモンド

最初の行と最後の行のダイヤモンドの場合、1つの星が印刷されます。他の行の場合、行の開始と終了に正確に2つの星が印刷され、これら2つの開始の間に空白がいくつかあります。ダイヤモンドには2つの部分があります。上半分と下半分。上半分ではスペース数を増やし、下半分ではスペース数を減らす必要があります。ここでは、midと呼ばれる別の変数を使用して、行番号を2つの部分に分割できます。

サンプルコード

#include <stdio.h>
int main() {
   int n, i, j, mid;
   printf("Enter number of lines: ");
   scanf("%d", &n);
   if(n %2 == 1) { //when n is odd, increase it by 1 to make it even
      n++;
}
mid = (n/2);
for(i = 1; i<= mid; i++) {
    for(j = 1; j<=(mid-i); j++){ //print the blank spaces before star
      printf(" ");
    }
    if(i == 1) {
      printf("*");
    } else {
      printf("*"); //in each line star at start and end
      position
      for(j = 1; j<=2*i-3; j++){ //print space to make hollow
          printf(" ");
      }
      printf("*");
    }
    printf("\n");
}
for(i = mid+1; i<n; i++) {
   for(j = 1; j<=i-mid; j++) { //print the blank spaces before star
      printf(" ");
   }
   if(i == n-1) {
      printf("*");
   } else {
      printf("*"); //in each line star at start and end
      position
      for(j = 1; j<=2*(n - i)-3; j++) { //print space to make
        hollow
        printf(" ");
      }
      printf("*");
   }
   printf("\n");
}

出力

Enter number of lines: 15
                      *
                    *   *
                  *       *
                 *         *
                *           *
               *             *
              *               *
             *                 *
              *               *
               *             *
                *           *
                 *         *
                   *     *
                    *   *
                      *

  1. Cプログラムで行列の対角パターンで数値を印刷します。

    タスクは、対角パターンのnxnの行列を印刷することです。 nが3の場合、対角パターンで行列を印刷するのは-です。 したがって、出力は次のようになります- 例 Input: 3 Output:    1 2 4    3 5 7    6 8 9 Input: 4 Output:    1 2 4  7    3 5 8 11    6 9 12 14    10 13 15 16 この問題は、数値nを与え、n x nの行列を生成

  2. 中空のピラミッドとダイヤモンドのパターンをC++で印刷するプログラム

    ここでは、C++を使用して中空のピラミッドとダイヤモンドのパターンを生成する方法を説明します。ソリッドピラミッドパターンを非常に簡単に生成できます。中空にするには、いくつかのトリックを追加する必要があります。 中空ピラミッド 最初の行のピラミッドには1つの星が印刷され、最後の行にはn個の星が印刷されます。他の行の場合、行の開始と終了に正確に2つの星が印刷され、これら2つの開始の間に空白があります。 サンプルコード #include <iostream> using namespace std; int main() {    int n, i, j; &nbs