?? 74.c
字號:
/*
打印魔方陣,魔方陣是指這樣的方陣,
它的每一行,每一列和對角線之和均相等。
例如:三階魔方陣
8 1 6
3 5 7
4 9 2
*/
#include<stdio.h>
int mofang()
{
int a[15][15],i,j,k,p,m,n;
p=1;
while(p==1)
{
printf("請輸入n,(0<n<=15,n是奇數(shù)。)\n");
scanf("%d",&n);
if((n!=0)&&(n<=15)&&(n%2!=0))
{
printf("矩形階數(shù)是%d\n",n);
p=0;
}
}//while
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=0; //對二維數(shù)組元素賦值為0;
}
}
j=n/2;//第一行中間的一個元素放1;
a[0][j]=1;
for(k=2;k<=n*n;k++)
{
i=i-1;
j=j+1;
if(i<0&&j>n-1) //如果是二維數(shù)組的右上角的元素,下一個元素放在其正下方;
{
i=i+2;
j=j-1;
}
else //如果不是二維數(shù)組的右上角的元素
{
if(i<0) i=n-1; //若i減1后為負值,就把i賦值為最后一行
if(j>n-1) j=0; //若j加1后大于最大列,就把j賦值為第一列;
}
if(a[i][j]==0) //若i行j列沒有元素,就把k賦值給他;
a[i][j]=k;
else //若i行j列有元素,就把k賦值給上一個元素的正下方的元素
{
i=i+2;
j=j-1;
a[i][j]=k;
}
}//for
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%5d",a[i][j]);
}
printf("\n");
}
}//main
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -