C程序:
#include "stdio.h"
/* X:首数字,N:行数 */
void display(int X, int N)
{
int i, j
for(i=0 i<N i++)
{
/* 输出每一行的前导空格 */
for(j=0 j<N-1-i j++)
printf(" ")
/* 输出数字部分的前一半(0..i) */
for(j=0 j<=i j++)
printf("%3d", X+i+j)
/* 输出数字部分的后一半(0..i-1) */
for(j=0 j<i j++)
printf("%3d", X+2*i-1-j)
printf("\n")
}
}
void main()
{
int X, N
printf("input first figure : ")
scanf("%d", &X)
printf("input rows : ")
scanf("%d", &N)
display(X, N)
}
运行测试:
#include <stdio.h>
int main()
{int n,i,j
scanf("%d",&n)
for(i=1i<=ni++)
{for(j=0j<n-ij++)
printf(" ")
for(j=ij>0j--)
printf("%d",j)
for(j=2j<=ij++)
printf("%d",j)
printf("\n")
}
for(i=n-1i>0i--)
{for(j=0j<n-ij++)
printf(" ")
for(j=ij>0j--)
printf("%d",j)
for(j=2j<=ij++)
printf("%d",j)
printf("\n")
}
return 0
}