一、实验目的
了解伪代码的作用;学会编写伪代码;培养提取问题要点的能力;编写代码来模拟实际操作;掌握二维数组的使用;掌握符号常量的作用;
二、实验内容
三、实验要点
放置的过程可以归纳为:
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 <stdio.h> #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字。