用C語言輸出任意N階奇數魔方矩陣

2021-09-02 15:28:22 字數 1190 閱讀 9945

將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...