c语言问题36

来源:百度知道 编辑:UC知道 时间:2024/06/21 14:51:37
写出输出n阶螺旋方阵的完整程序。

你在百度里搜索一下,有的。
/* N阶螺旋方阵源,在win-tc和tc2.0下运行通过 */
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main( )
{ int i,j,r,l,b,d,pl,N;
printf("Input Height(N):"); /*输入高度*/
scanf("%d",&N);
for (i=1;i<=N;i++)
{ for (j=1;j<=N;j++) /*定位到第i行第j列*/
{ r=i;d=0;pl=j-r;
if (r>N-j+1) {r=N-j+1;d=1;pl=i-r;}
if (r>N-i+1) {r=N-i+1;d=2;pl=N-j+1-r;}
if (r>j) {r=j;d=3;pl=N-i+1-r;}
/*找出圈数,边的位置,在边上的位置*/
l=N-2*(r-1)-1;/*边长*/
b=(4*N-4)*(r-1)-4*(r-1)*(r-2)+1;
/*本圈开始的数字*/
printf("%4d",b+l*d+pl);/*打印数字*/
}
printf("\n");
}
}