有了上题的铺垫,上半部分金字塔按照上题代码输出,下半部分只需将循环中的变量略作改动即可,可以利用数字模拟法。
具体代码如下:
#include<stdio.h>
int main(){
int n=0;
while(scanf("%d",&n)!=EOF){
for(int i=1;i<=2n-1;i++)
{
if(i<=n){
for(int j=1;j<=n-i;j++) putchar(' ');
for(int k=1;k<=2*i-1;k++) putchar('
');
for(int j=1;j<=n-i;j++) putchar(' ');
printf("\n");
}
else{
for(int j=1;j<=i-n;j++) putchar(' ');
for(int k=1;k<=2(2*n-i)-1;k++) putchar('');
for(int j=1;j<=i-n;j++) putchar(' ');
printf("\n");
}
}
}
return 0;
}