在這裡我們將看到如何使用C語言產生空心金字塔和菱形圖案。我們可以輕鬆地產生實心金字塔圖案。要使其成為空心,我們需要添加一些小技巧。
對於第一行的金字塔,它將列印一個星號,並在最後一行列印n個星號。對於其他行,它將在行的開頭和結尾分別列印兩個星號,並在這兩個星號之間有一些空格。
#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 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
對於第一行和最後一行的菱形,它將列印一顆星星。對於其他行,它將在行的開頭和結尾列印兩顆星,並且在這兩個開頭之間會有一些空格。鑽石有兩個部分。上半部和下半部。在上半部分,我們必須增加空間數量,而在下半部分,我們必須減少空間數量。在這裡,可以使用另一個名為 mid 的變數將行號分為兩部分。
#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中文網其他相關文章!