求指教!个人觉得思路是没错的,可是最后运行结果却是无限循环
//输入一个奇数,动态输出菱形#include <stdio.h>
void main()
{ int i,j,m,n,k,s,p;
int a[100][100];
printf("please a number:\n");
scanf("%d",&n);
k=(n+1)/2;
for(p=1;p>0;p++)//统计循环次数
{ for(s=1;s<=n;s++)
{ for(i=1;i<=n;i++)//用数组来确定空格和*的位置
{ for(j=1;j<=i;j++)
{ if((i==s&&(j>=k-s+1&&j<=s+3))||(i==(s+k)&&(j>=s+1&&j<=n-s))||(i==k&&j==k))
{ a[i][j]=1;//a[i][j]=1和a[i][j]=0的本意是每循环一次,if(a[i][j]=1) printf("*");
//if(a[i][j]=0) printf(" ");
printf("*");
}
else
{ a[i][j]=0;
printf(" ");
}
}
}
}
if(p%n==0)//保证每一行的空格加*一共为n个
printf("\n");
}
}