

有朋友会编这个程序吗,我写的好像因为循环太多,运行不出来,可以教教我吗?
浓缩版,供参考:
#include<stdio.h>
int main()
{
int i,j,l,m,pos,n;
char k;
scanf("%d",&n);
for(pos=l=0, m=n-1; m>=0; ++l<n?pos=l:pos=--m)
for(i=pos,j=0;j<=2*pos+1;i<n?i++:j++)
printf("%c",i<n?' ':(j<=pos)?(k=j+1+'0'):((--k)!='0'?k:'\n'));
return 0;
}
普通写法:
#include<stdio.h>
int main()
{
int i,j,n=4,k;
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=i;j<n;j++)
printf(" ");
for(j=0,k=0;j<2*i+1;j++)
printf("%d",j <= i ? ++k : --k);
printf("\n");
}
for(i=n-2;i>=0;i--)
{
for(j=i;j<n;j++)
printf(" ");
for(j=0,k=0;j<2*i+1;j++)
printf("%d",j <= i ? ++k : --k);
printf("\n");
}
return 0;
}