注册 登录
编程论坛 C语言论坛

这种金字塔怎么弄。求大佬帮助

牛U盾 发布于 2020-10-30 10:29, 1525 次点击
        1
      1 2 3
    1 2 3 4 5
  1 2 3 4 5 6 7
1 2 3 4 5 6 7 8 9
  1 2 3 4 5 6 7
    1 2 3 4 5
      1 2 3
        1
3 回复
#2
lin51616782020-10-30 11:08
拼接字符串 然后直接 %17s 输出就完事了
#3
lin51616782020-10-30 11:24
程序代码:
#include <stdio.h>

void printArr(char* str, int start, int end)
{
    if(start == end)
    {
        printf("%17.*s\n", start*2-1, str);
        return;
    }
    printf("%17.*s\n", start*2-1, str);
    printArr(str, start + 2, end);
    printf("%17.*s\n", start*2-1, str);
}

int main(int argc, char *argv[])
{
    printArr("1 2 3 4 5 6 7 8 9", 1, 9);   
    return 0;
}
#4
纯蓝之刃2020-10-30 13:04
程序代码:
#include <stdio.h>

int main()
{
    int n,m,i,j,k;
    printf("请输入列数:");
    scanf("%d", &n);
    for (i = 0; i < n; i++)
    {
        m = 2 * i > n ? n - i-1 : i;
        for (j = 0; j < 2*n - 1 - (m * 4 + 1); j++)
            printf(" ");
        for (k = j; k < 2*n; k++)
        {
            if (k % 2)
                printf("%d",(k-j+1)/2);
            else
                printf(" ");
        }
        printf("\n");
    }

    return 0;
}
1