#include"stdio.h"
void main(void)
{
int a[15][15]={0};
int i,j,k,n,p=1;
while(p==1) //參數(shù)p的設(shè)置,考試.大提示確定n輸入范圍
{
printf("請輸入一個奇數(shù)n(1到15之內(nèi)):");
scanf("%d",&n);
if((n>0) && (n<=15) && (n%2!=0)) //魔方陣的階數(shù)應(yīng)為奇數(shù)
p=0;
}
/////////////建立魔方陣
j=n/2;
a[0][j]=1; //把“1”放在第一行中間一列上
i=0;
j=n/2;
for(k=2;k<=n*n;k++)
{
i=i-1;
j=j+1;
if(i<0)
i=n-1;
if(j>(n-1))
j=0;
a[i][j]=k;
if(k%n==0) //當(dāng)這時插入的數(shù)是n的整數(shù)倍時,下一個起點設(shè)為他本列的下一行
{
a[++i][j]=++k;
}
}
printf("魔方陣:\n");
for (i=0;i {
for(j=0;j {
printf("%4d",a[i][j]);
}
printf("\n");
}
printf("\n");
}
void main(void)
{
int a[15][15]={0};
int i,j,k,n,p=1;
while(p==1) //參數(shù)p的設(shè)置,考試.大提示確定n輸入范圍
{
printf("請輸入一個奇數(shù)n(1到15之內(nèi)):");
scanf("%d",&n);
if((n>0) && (n<=15) && (n%2!=0)) //魔方陣的階數(shù)應(yīng)為奇數(shù)
p=0;
}
/////////////建立魔方陣
j=n/2;
a[0][j]=1; //把“1”放在第一行中間一列上
i=0;
j=n/2;
for(k=2;k<=n*n;k++)
{
i=i-1;
j=j+1;
if(i<0)
i=n-1;
if(j>(n-1))
j=0;
a[i][j]=k;
if(k%n==0) //當(dāng)這時插入的數(shù)是n的整數(shù)倍時,下一個起點設(shè)為他本列的下一行
{
a[++i][j]=++k;
}
}
printf("魔方陣:\n");
for (i=0;i
for(j=0;j
printf("%4d",a[i][j]);
}
printf("\n");
}
printf("\n");
}