输出“魔方阵”(C语言)
题目要求:所谓魔方阵是指这样的方阵,它的每一行,每一列和对角线之和均相等
例如,三阶魔方阵为
8 1 6
3 5 7
4 9 2
思路:
- 把1放在第一行中间
- 对于以后的数(即2~n*n),一般情况是行数i=i-1,列数j=j+1
- 如果一个数在第1行,则下一个数在第n行(列数照常);如果一个数第n列,下一个数第1列(行数照常)
- 如果上一个数是第1行第n列,则把下一个数放在上一个数的下面
- 如果按上面的规则确定的位置上已有数,则也把下一个数放在上一个数的下面(这种情况下,需要把行数j=j+2,列数i=i-1才会确定上一个数的下面那个位置,因为原先实行行数-1,列数+1)
以下为具体代码:
#include <stdio.h>
int main()
{
int array[100][100];
int n;
printf("Please enter n: ");
scanf("%d"