一、实验目的
了解伪代码的作用;学会编写伪代码;培养提取问题要点的能力;编写代码来模拟实际操作;掌握二维数组的使用;掌握符号常量的作用;
二、实验内容
三、实验要点
放置的过程可以归纳为:
1) 放置 1~ n*n 个数:确定初步位置,也就是 i 和 j 的值; 如果出界,就进行调整;放置 k
2) 确定初步位置有两种选择:放置在前一个数的下方或者右上方
四、代码
伪代码
确定1的位置坐标 i 和 j;
在 i 和 j 这个位置放置 1;
for (放置2~n*n个数)
{
if (k in [1,n+1,2*n+1, ..., (n-1)*n+1])
下方;
else
{
右上方;
}
if (在第0行) 调整到第n行;
if (在第n+1列) 调整到第1列;
放置 k 到 a[i][j];
}
输出二维矩阵;
对应的C语言代码描述如下:
#include
#define N 20
int main( )
{
int n, k, i, j;
int a[N][N];
scanf("%d", &n);
i= 1; j=(n+1)/2;
a[i][j]=1;
for (k=2; k<=n*n; k++)
{
if (k%n==1)
i = i+1;
else
{
i = i-1; j = j+1;
}
if (i==0) i = n;
if (j==n+1) j = 1;
a[i][j] = k;
}
for (i=1; i<=n; i++)
{
for (j=1; j<=n; j++)
printf("%4d", a[i][j]);
printf("\n");
}
return 0;
}
五、实验小结
总结实验过程中遇到的问题及解决办法,不少于50字。