#include <stdio.h>
void main()
{
int i,j,m,n;
scanf("%d",&n);
if(n<5||n>21) printf("Input error!");
else
{
for(i=n-1;i>=1-n;i--)
{
m=i;if(m<0) m=-m;
for(j=1;j<=m;j++)
printf(" ");
for(j=1;j<=(n-m)*2-1;j++)
printf("*");
printf("\n");
}
}
}
追问好像错了 7的话第一行是一个星号第二行是三个 排成一个菱形
追答重新写一下:
#include <stdio.h>
void main()
{
int i,j,m,n;
scanf("%d",&n);
if(n<5||n>21) printf("Input error!");
else
{
for(i=(n-1)/2;i>=(1-n)/2;i--)
{
m=i;if(m<0) m=-m;
for(j=1;j<=m;j++)
printf(" ");
for(j=1;j<=n-m*2;j++)
printf("*");
printf("\n");
}
}
}
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/aa64034f78f0f736bd43a3540155b319ebc41321?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追问对了 谢谢
感觉你这个好难想到