思路 :
成沙漏形状是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,在从小到大顺序递增;首尾符号数相等。
#include <stdio.h>
int main()
{
int i,kong,n=0,N,fuhao;
char op;
scanf("%d",&N);
scanf("%c",&op);
while(N>2*n*n-1)
n++;
if(2*n*n-1>N)
n--;
for(i=1;i<=n;i++)
{
for(kong=1;kong<i;kong++)
printf(" ");
for(fuhao=1;fuhao<=2*n-2*i+1;fuhao++)
printf("%C",op);
printf("\n");
}
for(i=n-1;i>=1;i--)
{
for(kong=1;kong<i;kong++)
printf(" ");
for(fuhao=1;fuhao<=2*n-2*i+1;fuhao++)
printf("%c",op);
printf("\n");
}
printf("%d",N-2*n*n+1);
return 0;
}