歡迎來到我們關於在 C 程式設計中使用循環創建各種空心圖案的綜合指南!在本教學中,我們將逐步介紹如何繪製 18 種不同的空心圖案。這些圖案的範圍從方形和三角形等基本形狀到菱形、六邊形和五邊形等更複雜的形狀。每個模式都是使用巢狀循環創建的,這對於初學者來說是練習 C 語言控制結構的絕佳練習。讓我們開始吧!
您可以在我們的 GitHub 儲存庫中找到所有程式碼。
在我們開始使用模式之前,有必要先了解巢狀循環的概念。嵌套循環是另一個循環內的一個循環。此結構對於處理多維數組和生成模式特別有用。在 C 語言中,典型的巢狀循環結構如下所示:
for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { // Code to execute } }
說明:
int n = 5; // size of the square char ch = '*'; printf("1. Hollow Square:\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (i == 0 || i == n - 1 || j == 0 || j == n - 1) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); }
輸出:
* * * * * * * * * * * * * * * *
說明:
printf("2. Hollow Right Triangle:\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < i + 1; j++) { if (i == n - 1 || j == 0 || j == i) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); }
輸出:
* * * * * * * * * * * *
說明:
printf("3. Hollow Inverted Right Triangle:\n"); for (int i = 0; i < n; i++) { for (int j = n; j > i; j--) { if (i == 0 || j == n || j == i + 1) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); }
輸出:
* * * * * * * * * * * *
說明:
printf("4. Hollow Right Aligned Triangle:\n"); for (int i = 0; i < n; i++) { for (int j = n - 1; j > i; j--) { printf(" "); } for (int j = 0; j < i + 1; j++) { if (i == n - 1 || j == 0 || j == i) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); }
輸出:
* * * * * * * * * * * *
說明:
printf("5. Hollow Right Aligned Inverted Triangle:\n"); for (int i = 0; i < n; i++) { for (int j = 1; j < i + 1; j++) { printf(" "); } for (int j = n; j > i; j--) { if (i == 0 || j == n || j == i + 1) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); }
輸出:
* * * * * * * * * * * *
說明:
printf("6. Hollow Right Pascal Triangle:\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < i + 1; j++) { if (j == 0 || j == i) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); } for (int i = 0; i < n; i++) { for (int j = n; j > i + 1; j--) { if (j == n || j == i + 2) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); }
輸出:
* * * * * * * * * * * * * * * *
說明:
printf("7. Hollow Left Pascal Triangle:\n"); for (int i = 0; i < n; i++) { for (int j = n - 1; j > i; j--) { printf(" "); } for (int j = 0; j < i + 1; j++) { if (j == 0 || j == i) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); } for (int i = 0; i < n; i++) { for (int j = 0; j < i + 1; j++) { printf(" "); } for (int j = n - 1; j > i; j--) { if (j == n - 1 || j == i + 1) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); }
輸出:
* * * * * * * * * * * * * * * *
說明:
printf("8. Hollow Equilateral Triangle:\n"); for (int i = 0; i < n; i++) { for (int j = n - 1; j > i; j--) { printf(" "); } for (int j = 0; j < 2 * i + 1; j++) { if (j == 0 || j == 2 * i || i == n - 1) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); }
輸出:
* * * * * * * * * * * * * * * *
說明:
printf("9. Hollow Inverted Equilateral Triangle:\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < i; j++) { printf(" "); } for (int j = 2 * n - 1; j > 2 * i; j--) { if (j == 2 * n - 1 || j == 2 * i + 1 || i == 0) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); }
Output:
* * * * * * * * * * * * * * * *
Explanation:
printf("10. Hollow Pyramid:\n"); for (i = 0; i < n; i++) { for (j = n - 1; j > i; j--) { printf(" "); } for (j = 0; j < (2 * i + 1); j++) { if (i == n - 1 || j == 0 || j == i * 2 ) { printf("%c", ch); } else { printf(" "); } } printf("\n"); }
Output:
* * * * * * * *********
Explanation:
printf("11. Hollow Inverted Pyramid:\n"); for (i = n; i > 0; i--) { for (j = n - i; j > 0; j--) { printf(" "); } for (j = 0; j < (2 * i - 1); j++) { if (j == 0 || i == n || j == (i-1) * 2 ) { printf("%c", ch); } else { printf(" "); } } printf("\n"); }
Output:
********* * * * * * * *
Explanation:
printf("12. Hollow Diamond:\n"); for (i = 0; i < n; i++) { for (j = n - 1; j > i; j--) { printf(" "); } for (j = 0; j < i + 1; j++) { if (j == 0 || j == i) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); } for (i = 0; i < n; i++) { for (j = 0; j < i + 1; j++) { printf(" "); } for (j = n - 1; j > i; j--) { if (j == n - 1 || j == i + 1) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); }
Output:
* * * * * * * * * * * * * * * *
Explanation:
printf("13. Hollow Hourglass:\n"); for (i = 0; i < n; i++) { for (j = 0; j < i; j++) { printf(" "); } for (j = 0; j < (n - i) ; j++) { if (j == 0 || i == 0 || j == n - i - 1) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); } for (i = 1; i < n; i++) { for (j = n - 1; j > i; j--) { printf(" "); } for (j = 0; j < (i + 1); j++) { if (i == n - 1 || j == 0 || j == i) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); }
Output:
* * * * * * * * * * * * * * * * * * * * * * *
Explanation:
printf("14. Hollow Rhombus:\n"); for (int i = 0; i < n; i++) { for (int j = n - 1; j > i; j--) { printf(" "); } for (int j = 0; j < n; j++) { if (i == 0 || i == n - 1 || j == 0 || j == n - 1) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); }
Output:
* * * * * * * * * * * * * * * *
Explanation:
printf("15. Hollow Parallelogram:\n"); for (i = 0; i < n; i++) { for (j = 0; j < i; j++) { printf(" "); } for (j = 0; j < n * 2; j++) { if (i == n - 1 || i == 0 || j == 0 || j == n * 2 - 1) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); }
Output:
* * * * * * * * * * * * * * * * * * * * * * * * * *
Explanation:
printf("16. Hollow Hexagon:\n"); for (i = 0; i < n / 2; i++) { for (j = n / 2 - i; j > 0; j--) { printf(" "); } for (j = 0; j < n + 1 * i; j++) { if ( i == 0 || j == 0 || j == n * i) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); } for (i = n / 2; i >= 0; i--) { for (j = 0; j < n / 2 - i; j++) { printf(" "); } for (j = 0; j < n + i; j++) { if (i == n - 1 || i == 0 || j == 0 || j == n + i - 1) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); }
Output:
* * * * * * * * * * * * * * * *
Explanation:
printf("17. Hollow Pentagon:\n"); for (i = 0; i < n+1; i++) { for (j = n ; j > i; j--) { printf(" "); } for (j = 0; j < (i + 1); j++) { if ( j == 0 || i == 0 || j == i ) { printf(" %c", ch); } else { printf(" "); } } printf("\n"); } for (i = n / 2; i >= 0; i--) { for (j = 0; j < n / 2 - i; j++) { printf(" "); } for (j = 0; j < n + i; j++) { if (i == n - 1 || i == 0 || j == 0 || j == n + i - 1) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); }
Output:
* * * * * * * * * * * * * * * * * * * *
Explanation:
printf("18. Hollow Inverted Pentagon:\n"); for (int i = 0; i <= n / 2; i++) { for (int j = 0; j < n / 2 - i; j++) { printf(" "); } for (int j = 0; j < n + i; j++) { if (i == n - 1 || i == 0 || j == 0 || j == n + i - 1) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); } for (int i = n + 1; i > 0; i--) { for (int j = n + 2; j > i; j--) { printf(" "); } for (int j = 0; j < i; j++) { if ( j == 0 || j == i - 1) { printf("%c ", ch); } else { printf(" "); } } printf("\n"); }
Output:
* * * * * * * * * * * * * * * * * * * *
In conclusion, we have explored a variety of patterns using loops and conditional statements in C, each producing different geometric shapes and designs. These patterns include solid and hollow variants of squares, triangles, pyramids, diamonds, hourglasses, rhombuses, parallelograms, hexagons, and pentagons. Understanding and implementing these patterns helps to strengthen programming logic, loop constructs, and conditionals, which are fundamental concepts in computer science.
By practicing these patterns, you can enhance your problem-solving skills and improve your ability to visualize and implement complex patterns in code. These exercises also provide a solid foundation for more advanced programming tasks and algorithms.
以上是掌握空心圖案:帶有程式碼範例的綜合指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!