C程序打印空心金字塔和菱形图案
在这里,我们将看到如何使用C生成空心金字塔和菱形图案。我们可以非常轻松地生成实心金字塔图案。为了使它空洞,我们必须添加一些技巧。
空心金字塔
对于第一行的金字塔,它将打印一颗星,而在最后一行,它将打印n颗星。对于其他行,它将在行的开头和结尾打印两颗星,并且在这两个开头之间会有一些空格。
示例代码
#include输出结果int main() { int n, i, j; printf("输入行数: "); scanf("%d", &n); for(i = 1; i<=n; i++) { for(j = 1; j<=(n-i); j++){ //打印星号前的空格 printf(" "); } if(i == 1 || i == n){ //对于第一行和最后一行,打印 stars continuously for(j = 1; j<=i; j++) { printf("* "); } } else { printf("*"); //在开始和结束的每一行星号中 position for(j = 1; j<=2*i-3; j++) { //打印空间使空心 printf(" "); } printf("*"); } printf("\n"); } }
输入行数: 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
空心钻石
对于第一行和最后一行的钻石,它将打印一颗星。对于其他行,它将在行的开头和结尾打印两颗星,并且在这两个开头之间会有一些空格。钻石有两部分。上半部和下半部。在上半部分,我们必须增加空间计数,而对于下半部分,我们必须减少空间计数。这里可以使用另一个称为mid的变量将行号分为两部分。
示例代码
#includeint main() { int n, i, j, mid; printf("输入行数: "); scanf("%d", &n); if(n %2 == 1) { //当n为奇数时,将其增加1使其为偶数 n++; } mid = (n/2); for(i = 1; i<= mid; i++) { for(j = 1; j<=(mid-i); j++){ //打印星号前的空格 printf(" "); } if(i == 1) { printf("*"); } else { printf("*"); //在开始和结束的每一行星号中 position for(j = 1; j<=2*i-3; j++){ //打印空间使空心 printf(" "); } printf("*"); } printf("\n"); } for(i = mid+1; i 输出结果 输入行数: 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * *