代码来源于博主个人,备考题目不代表考试题目、不代表答案解析,仅供作参考
#include<stdio.h>
int main()
{
int i,j,k;
int n;
int row;
char z;
printf("input a number and a char:\n");
scanf("%d %c",&n,&z);
for(i=0;i<n;i++)//i为上下半部分行数
{
if(2*i*(i+2)+1>n)
{
row=i-1;
break;
}
}
for(i=row;i>=1;i--)
{
for(k=row-i;k>=1;k--)
printf(" ");
for(j=i*2+1;j>=1;j--)
printf("%c",z);
printf("\n");
}
for(i=row;i>=1;i--)
printf(" ");
printf("%c\n",z);
for(i=1;i<=row;i++)
{
for(k=row-i;k>=1;k--)
printf(" ");
for(j=2*i+1;j>=1;j--)
printf("%c",z);
printf("\n");
}
return 0;
}