本题要求实现一个函数,输出n行空心的数字金字塔。
#include <stdio.h>
void hollowPyramid ( int n );
int main()
{
int n;
scanf("%d", &n);
hollowPyramid ( n );
return 0;
}
/* 你的代码将被嵌在这里 */
void hollowPyramid( int n ){
int i, j, k;
for(i=1; i<n; i++){ //控制行数
for(j=1; j<=(n-i); j++){ //控制每一行前面的空格
printf(" ");
}
printf("%d", i); //输出空格之后,输出每一行的最左边的那个数字
if(i==1){ //如果是第一行,那么跳出循环执行第二行(因为第一行中间没有空格)
printf("\n");
continue;
}
for(k=1;k<=2*(i-1)-1;k++){ //控制从第2行开始,每一行中间的空格数
printf(" "); //每一行中间的空格k数与i的关系是k=2*(i-1)-1
}
printf("%d", i); //输出完空格后,输出每一行的最右边的那个数字
printf("\n"); //完成这一行后换行,准备进入下一行
}
for(i=1;i<2*n;i++){ //最后一行中间没有空格,所以单独拿出来,输出每一个数字n
printf("%d",n);
}
}
例子