打印沙漏

xiaoxiao2021-02-28  102

#include <stdio.h> int main() { int n,m=1,k,t=0,i=0,j,a[20],sum=1; char s; scanf("%d %c",&n,&s); while(n>=sum) { a[i]=m; m+=2; sum+=2*m; i++; } sum-=2*m;//sum表示打印沙漏用掉的符号数 for(j=i-1;j>=0;j--) //沙漏上部分的输出 { for(k=0;k<t;k++) printf(" ");//输出沙漏每行开始的空格 for(k=0;k<a[j];k++) printf("%c",s);//输出a[j]个符号,构成沙漏的第j+1行 printf("\n"); t++; } t--; for(j=1;j<=i;j++) //沙漏下部分的输出 { t--; for(k=0;k<t;k++) printf(" "); for(k=0;k<a[j];k++) printf("%c",s); if(j!=i) printf("\n"); } printf("%d",n-sum); return 0; }
转载请注明原文地址: https://www.6miu.com/read-52536.html

最新回复(0)