欢迎来到我们关于在 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中文网其他相关文章!