谁给个思路?
1 16 15 14 13
2 17 24 23 12
3 18 25 22 11
4 19 20 21 10
5 6 7 8 9
用c++实现
问题点数:10、回复次数:3Top
1 楼sun_srh(sun_srh)回复于 2002-06-14 14:35:10 得分 10
好象在帮你做作业,你自己慢慢看吧
#include<stdio.h>
main()
{
int i,j,k,n;
int mat[10][10],value=1;
printf("\nPlease input dimension of mat:");
scanf("%d",&n);
for(k=0;k<(n+1)/2;k++){
for(i=k;i<n-k;i++)
mat[i][k]=value++;
for(i=k+1;i<n-k;i++)
mat[n-k-1][i]=value++;
for(i=n-k-2;i>=k;i--)
mat[i][n-k-1]=value++;
for(i=n-k-2;i>k;i--)
mat[k][i]=value++;
}
puts("\n");
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%8d",mat[i][j]);
}
puts("\n");
}
}
Top
2 楼sun_srh(sun_srh)回复于 2002-06-14 14:38:12 得分 0
我忘了说明!
上面的程序是将螺旋方阵存放在n*n的二维数组中并把它打印输出。Top
3 楼ynli2002(阿男)回复于 2002-06-14 17:06:53 得分 0
例子
1.a(1,1)=1
2.a(1.j)=a(1,1)+3*k-3+(k-j+(i-1)) 此时k=5
当a(i,j)中i>=j时 a(i,j)=a(i-1,j)+1
3.a(2,1)=2,a(2,2)=17
4.a(2,j)=a(2,2)+3*k-3+(k-j+(i-1)) 此时k=3
依此类推
(好像有点问题,我在想想)Top




