c语言的星号问题

输入一个正整数在【5,21】内显示由星号组成的菱形
例子输入7 第一行3个空 第二行2个空 第三行1个弟四行没有空
*
***
*****
*******
*****
***
*

#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");
}
}
}

追问

对了 谢谢

感觉你这个好难想到

温馨提示:答案为网友推荐,仅供参考