ここでは、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("</p><p>"); } }
Enter number of lines: 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
ひし形の最初の行と最後の行には、星が印刷されます。他の行については、行の先頭と末尾に 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("</p><p>"); } 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("</p><p>"); }
Enter number of lines: 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * *
以上が中空ピラミッドとひし形パターンを印刷する C プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。