PAT 乙 1027 列印沙漏 最簡單的C語言實現 AC

NO IMAGE

#include<stdio.h> 
int main(){
int n,sum=1,hang=1,h=1;//hang表示當前行的輸出字元個數  h表示最大行字元個數
char c;
scanf(“%d %c”,&n,&c);
while(sum<=n){
hang =2;
sum =hang*2;
}
sum-=hang*2;//sum表示用到的字元個數
hang-=2;
h=hang;
for(int i=0;i<h/2;i ){//列印上半部分,共h/2行
for(int j=0;j<i;j ) putchar(‘ ‘);
for(int j=0;j<hang;j ) putchar(c);
putchar(‘\n’);
hang-=2;
}
for(int i=0;i<h/2 1;i ){//列印下半部分,包括h/2 中間1行
for(int j=0;j<h/2-hang/2;j ) putchar(‘ ‘);
for(int j=0;j<hang;j ) putchar(c);
putchar(‘\n’);
hang =2;

printf(“%d”,n-sum);
return 0;
}