请问金字塔用C语言怎么编写

来源:百度知道 编辑:UC知道 时间:2024/05/27 01:02:13
输入n值,打印下列形状的金字塔,其中n代表金字塔的层数。数字之间有空格
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 5 6 5 4 3 2 1
1 2 3 4 5 6 7 6 5 4 3 2 1
1 2 3 4 5 6 7 8 7 6 5 4 3 2 1
1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1
我写的时候从第一行到第九行左边依次有8.7.6......1.0个空格,其形状为金字塔形,而不是直角三角形,不知道怎么回事空格不见了,这只是一个举例,其实有n行 ,我想知道模版
刚才我试了,是三角形,但不是正三角形,也不是金字塔形

#include <stdio.h>
#include <math.h>

int main()
{
int n;
int i,j;
n = 9;
for (i = 0; i < n; i++)
{
for (j = i; j < n - 1; j++)
printf(" ");// " "里面是两个空格
for (j = -i; j<= i; j++)
printf("%d ", i + 1 - abs(j));
printf("\n");
}
}

这个代码就是正三角的,前面有空格,运行一下就知道了

给,已经编译运行确认:
#include<conio.h>
#include<stdio.h>

int main()
{
int n,i,j,k;
printf("input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(k=1;k<=2*(n-i);k++)
printf(" ");
for(j=1;j<=i;j++)
printf("%d ",j);
for(j=i-1;j>0;j--)
printf("%d ",j);
printf("\n");
}

getch();
return 1;
}