奇数魔方阵(C语言上机实验指导(第二,) 刘欣亮主编)
题目:
3×3的魔方阵[1] :
8 1 63 5 74 9 2魔方阵的排列规律如下:⑴将1放在第一行中间一列;⑵从2开始直到n×n止各数依次按下列规则存放;每一个数存放的行比前一个数的行数减1,列数加1(例如上面的三阶魔方阵,5在4的上一行后一列);⑶如果上一个数的行数为1,则下一个数的行数为n(指最下一行);例如1在第一行,则2应放在最下一行,列数同样加1;⑷当上一个数的列数为n时,下一个数的列数应为1,行数减去1。例如2在第3行最后一列,则3应放在第二行第一列;⑸如果按上面规则确定的位置上已有数,或上一个数是第一行第n列时,则把下一个数放在上一个数的下面。例如按上面的规定,4应该放在第1行第2列,但该位置已经被占据,所以4就放在3的下面。
ps:由于题目给定框架,中间重要结构借鉴而来
#include <stdio.h>
#define Max 15
int main()
{
int i,row,col,odd;
int m[Max][Max];
printf("\nPlease input an odd:");
scanf("%d",&odd);
if(odd<=0||odd%2==0)
{
printf("\nInput Error!\n");
return 0;
}
printf("\nodd=%d\n\n",odd);