编程题:N行N列魔方阵,其构成法则,要求行数相加、列数相加,对角线相加 之和相等,必须N >=3 ,N是奇数N行N列魔方阵,其构成法则:第一,阶数必须是奇数(n>3);第二,将“1”放在第一行的中间一列;第三,从“2”开始只到n*n各数依次按下里列规则存放:每一个数存放的行比前一个数的行数减1,列数加1;第四,如果上一个数的行数为 1,则下一个数的行数为n,列数加1;第五,如果上一个数的列数为n,则下一个数的列数为1,行数减1;第六,如果一个数是N的整数倍,则把下一个数放在这一个数下面.

问题描述:

编程题:N行N列魔方阵,其构成法则,要求行数相加、列数相加,对角线相加 之和相等,必须N >=3 ,N是奇数
N行N列魔方阵,其构成法则:第一,阶数必须是奇数(n>3);第二,将“1”放在第一行的中间一列;第三,从“2”开始只到n*n各数依次按下里列规则存放:每一个数存放的行比前一个数的行数减1,列数加1;第四,如果上一个数的行数为 1,则下一个数的行数为n,列数加1;第五,如果上一个数的列数为n,则下一个数的列数为1,行数减1;第六,如果一个数是N的整数倍,则把下一个数放在这一个数下面.

#include #define MAXSIZE 15int magic[MAXSIZE][MAXSIZE];int cur_i=0,cur_j=0;main(){int count,size=0,i,j;while((size%2)==0){printf("\nenter ODD number:");scanf("%d",&size);}cur_j=(size-1)/2;for(count=1;...