C语言有关输入n个倒金字塔问题

img

img


我这里只能输出两个倒金字塔,怎么才能输出n个金字塔?要怎么改?


#include<stdio.h>
int main()
{
int n,m;
scanf("%d\n",&n);
for(int i=1;i<=n;i++){
for(int k=1;k<=n-i;k++){
printf(" ");}
for(int k=1;k<=2i-1;k++)
printf("
");
printf("\n");}
for(int b=1;b<n;b++){
for(int h=0;h<=b-1;h++){
printf(" ");}
for(int g=b;g<=2n-b-2;g++){
printf("
");}
printf("\n");
printf("\n");}

2<=m&&m>=9;
scanf("%d",&m);
for(int i=1;i<=m;i++){
for(int k=1;k<=m-i;k++){
printf(" ");}
for(int k=1;k<=2i-1;k++)
printf("
");
printf("\n");}
for(int b=1;b<m;b++){
for(int h=0;h<=b-1;h++){
printf(" ");}
for(int g=b;g<=2m-b-2;g++){
printf("
");}
printf("\n");}
return 0;
}


#include<stdio.h>

int main()
{
    int num;

    while (1) {
        printf("请输入2到9的整数:");
        scanf("%d", &num);

        if ((num < 2) || (num > 9)) {
            break;
        }

        for (int i = 1; i <= num; i++) {
            for (int j = 0; j < (num - i); j++) {
                printf(" ");
            }


            for (int j = 0; j < (2 * i - 1); j++) {
                printf("*");
            }
            printf("\n");
        }

        for (int i = num - 1; i > 0; i--) {
            for (int j = 0; j < (num - i); j++) {
                printf(" ");
            }


            for (int j = 0; j < (2 * i - 1); j++) {
                printf("*");
            }
            printf("\n");
        }
    }

    printf("程序结束\n");
    return 0;
}

可以参考:C语言输出双层金字塔

仅供参考!谢谢!

img

img

img


#include <stdio.h>

void print(int n, char c)
{
    puts("");
    for (int i = 1; i <= n; i++)
    {
        for (int j = 0; j < 2 * i - 1; j++)
        {
            if (j == 0)
                printf("%*c", n - i + 1, c);
            else
                printf("%c", c);
        }
        puts("");
    }
    for (int i = 1; i < n; i++)
    {
        for (int j = 2 * (n - i) - 1; j > 0; j--)
        {
            if (j == 2 * (n - i) - 1)
                printf("%*c", i + 1, c);
            else
                printf("%c", c);
        }
        puts("");
    }
}

int main(int argc, char *argv[])
{
    int n = 0;

    printf("输入金字塔组数:");
    while (n <= 0)
        scanf("%d", &n);

    int arr[n];

    printf("\n输入各个金字塔层数:");
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
    }

    //输出
    for (int i = 0; i < n; i++)
    {
        print(arr[i], '#');
    }

    return 0;
}