六楼的此处错误啊。
if(mid-(k-i)==j||j==mid+(k-i))
if(mid-(i-1)==j||j==mid+(i-1))
其他的没有问题啊。高手啊。能这么轻松做出来,不容易啊。
if(mid-(k-i)==j||j==mid+(k-i))
if(mid-(i-1)==j||j==mid+(i-1))
其他的没有问题啊。高手啊。能这么轻松做出来,不容易啊。
程序代码:
#include<stdio.h>
#include<stdlib.h>
#define N 30
int main(void)
{
unsigned n;
int i,j,k;
while((scanf("%d",&n))==1)
{
if(n%2==0||n>N)
{
continue;
}
k=(int)(n/2);
for(i=-k;i<=k;++i)
{
for(j=-k;j<=k;++j)
{
printf("%c",abs(i)+abs(j)==k?'*':' ');
}
puts("");
}
}
return 0;
}

程序代码:#include<stdio.h>
#include<math.h>
main()
{
int n,j,i,z;
scanf("%d",&n);
if(n%2==1)
for(i=1;i<=n;i++)
{
if(i<=n/2+1)
j=2*i-1;
else
j=n-(i-n/2-1)*2;
for(z=1;z<=abs(n/2-i+1);z++)printf(" ");
for(z=1;z<=j;z++)
if(z==1||z==j)printf("*");
else printf(" ");
printf("\n");
}
else
printf("error\n");
}
加上奇数的判断。。。
