將1 ~ n(為奇數)的數字排列在n*n的方陣上,且各行、各列與各對角線的和必須相同,如下所示:
奇數魔方矩陣規律:
(1) 自然數1出現在第 1 行的正中間;
(2)若填入的數字在第-行(不在第 n 列),則下乙個數字在第 n 行(最後一行)且列數加 1 (列數右移一列) ;
(4) 一般地,下乙個數字在前乙個數字的右上方(行數少 1,列數加 1 ) ;
(5)若應填的地方已經有數字或在方陣之外,則下乙個數字就填在前乙個數字的下方。 (一般地,n 的倍數的下乙個數字是在該數的下方。)
**如下:
①
#include
#include
void
oddmf
(int n,
int*
*square)
if(j == n +1)
if(square[i]
[j]!=0)
//檢測當前位置數字是否為0
square[i]
[j]= key;}}
intmain()
for(i=
0; i<=n; i++)}
oddmf
(n, square)
;for
(i=1
; i<=n; i++
)printf
("\n");
}return0;
}
#include#includevoid oddmf(int n, int **square)
else
if(i == 0)//越界檢測
if(j == n + 1)
square[i][j] = key;
}} int main()
for(i=0; i<=n; i++)
} oddmf(n, square);
for(i=1; i<=n; i++)
printf("\n");
} return 0;
}
樣例輸出
輸出奇數N階魔方陣 幻方陣
從鍵盤輸入乙個奇數n,輸出n階 魔方陣 所謂魔方陣是指這樣的方陣,它的每一行 每一列和對角線之和均相等。例如3階魔方陣為 8 1 6 3 5 7 4 9 2 魔方陣的奇數排列規律是 1 將1放在第一行中間一列 2 從2開始直到n n止各數依次按下列規則存放 按 45 方向向右上走,每乙個數存放的行比...
C語言輸出三階魔方陣
c程式設計第五版 譚浩強 章節 第六章 利用陣列處理批量資料 題號 6.7 題目 輸出奇數階魔方陣 將1放在第一行中間一列 從2開始直到 n n為止各數依次按照如下規則存放 1 每乙個數存放的行是前乙個數的行減去1,列數加1 例如三階魔方陣,5在4的上一行後一列 2 如果前乙個數的行數為1,那麼下乙...
七階拉丁方陣 C語言 輸出N階拉丁方陣並統計個數
題目如下 在 行 列的數陣中,數 在每行和每列 現且僅 出現一次,這樣的數陣叫 階拉丁方陣。例如下圖就是乙個五階拉丁方陣。編一程式,從鍵盤輸入 值後,列印出所有不同的 階拉丁方陣,並統計個數。1 2 3 4 5 2 3 4 5 1 3 4 5 1 2 4 5 1 2 3 5 1 2 3 4 incl...