N階魔方怎麼用C語言編寫

時間 2025-05-08 17:25:04

1樓:蟲蟲當家

包括。定義n 16 / 在這裡,您可以n的值廉政的main()

詮釋一如頌個[n] [n],i,j,k,p,m,n;

p = 1;

而(==1)/爛橡氏 *順序是必需的從1到15的商數* /的printf(「請輸入n(n = 1到15):」可以輸入小於或等於n-1的整數。

scanf函式(「%d」,&n);

i = 1; 《我+ +初始化* /

j = 1; j = n / 2 +1 / 建立幻方* /1 [1] [j] =1;

k = 2時; j> n)= 1;

a [i] [j] =0)a [i] [j] =k;

其他 i = i +2;

j = j-1;

一[i] [j] =k;

i = 1; 輸出(「4d」,[i] [j]);

輸出(「」返回0;

2樓:失落血天使

可以說具體點麼···

n階魔方···是啥。

用c語言編寫n階魔方陣.謝謝了!!!

3樓:網友

下面這個程式原本是從百科裡找到的,不過發現百科裡面那個程式原來有誤,修改後終於可以了,給你,希望有幫助!!!

#include

#define n 16 //n可修改。

int main()

int a[n][n]=,i,j,k,p,m,n;

p=1; while(p==1)

printf("enter n(1~%d): ",n-1);

scanf("%d",&n);

if((n!=0)&&nn))

i=i+2;j=j-1;

elseif(i<1) i=n;

if(j>n) j=1;

if(a[i][j]==0) a[i][j]=k; elsei=i+2;

j=j-1;

a[i][j]=k;

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

printf("%4d",a[i][j]);

printf("");

return 0;

n階魔方陣c語言

4樓:網友

據我所知,起碼,n為偶數時n階魔方陣是很難得到的,你的是不是奇數的魔方陣?

c語言 n階魔方問題

5樓:搗蒜大師

你這程式還沒寫完啊 秘方問題是什麼鬼。

c語言程式設計,輸出魔方陣

6樓:小夏在深圳

源**如下:

#include

#define n 5

int main()

int a[n][n]=, i, j, k, t, x, y;

i=0; /*自然數1的行標*/

j=n/2; /*自然數1的列標*/

t=n-1; /*最後一行、最後一列的下標*/for(k=1; k<=n*n; k++)a[i][j]=k;

x=i;y=j;

if(i == 0)

i=t;else

i=i-1;

if(j != t)

j=j+1;

elsej=0;

if(a[i][j]!=0)

i=x+1;

j=y;printf("生成的5-魔方陣為:");

for(i=0; iprintf("");

for(j=0; jprintf("%3d", a[i][j]);

printf("");

return 0;

7樓:凌許撒問芙

你好,首先你要搞清楚魔方陣的排列規律,我看了下你的程式,只是針對奇數來排列的,而魔方陣的奇數排列規律就是:

1)將1放在第一行中間一列;

2)從2開始直到n×n止各數依次按下列規則存放:

按45°方向向右上走,每乙個數存放的行比前乙個數的行數減1,列數加1;

3)如果行列範圍超出矩陣範圍,則迴繞。

例如1在第1行,則2應放在最下一行,列數同樣加1;

又如某個數在第n列,則下乙個數應放在第一列,行數同樣減1;

知道了排列規律,就好辦了,程式註釋如下:

#include

voidmain()

else/如果不是,又有以下情況。

if(a[i][j]==0)

如果按上面規則確定的位置上沒有數,那麼就放在該位置。

a[i][j]=k;

for(i=1;i<=n;i++)

printf("");}

8樓:網友

#include

int main()

i,j,n;

i=1;printf("請輸入乙個數");

scanf("%d",&n);//輸入魔方陣的維度n

j=n/2+1; // j是維度的一半加1.

a[i][j]=1; //確定第一排的中間乙個數為1

for(int k=2;k<=n*n;k++)//已經確定1的位置了,再迴圈確定2~n*n的位置。

if(j>n) //如果只有橫排超過最右,橫排挪到左邊第二行。

if(a[i][j]==0) a[i][j]=k; //如果這個位置還沒有賦值,那麼賦值為k。

else //已經賦值過了。那麼豎排往下挪兩位,橫排往左移一位,再賦值為k。

for(i=1;i<=n;i++)//迴圈輸出位置。

魔方陣有一定畫法,先取一點,然後往左上、右下、右上、左下,任意選乙個方向填數字就可以了。

這個是其中乙個畫法:

1)將1填入第一行中間;

2)將每個數填在前乙個數的右上方。

3)若該位置超出最上行,則改填在最下行的對應位置;

4)若該位置超出最右列,則該填在最左列的對應行位置;

5)若某元素填在第一行最右列,下乙個數填在該數同列的下一行;

6)若某數已填好,但其右上角已填了其他資料,則下乙個數填在該數同列的下一行位置。

9樓:網友

這個是17以內奇數階和四階的!

#include

void main()

printf("請輸入層數:");

scanf("%d",&x);

if((x!=4)&&x%2==0)||x<0)&&x>18))

fl=0;else if(x==4)}}

elseelse

if(a[i][j]==0)

a[i][j]=k;

else}}

if(fl==0)

printf("無此魔方陣!");

else}}

用c語言編寫乙個n階矩陣

10樓:周建國偉

什麼意思,能不能不能具體點。

用C語言編寫“背單詞程式”,用C語言編寫如下程式?

董俊錕 include include include struct word 定義一個word的結構體,裡面的兩個成員分別放英語單詞和相應的漢語翻譯 int point 0 統計分數的 int count1 0 測試的次數 void tianjia struct word str 100 int ...

用c語言怎麼編寫萬年曆,用C語言怎麼編寫萬年曆

小夏在深圳 c語言編寫萬年曆的源 如下 include int week int y,int m,int d int main char wk 7 3 int year,month,day,w w week year,month,day printf d年 d月 d日 星期 s year,month...

用C語言編寫2025年曆(急求,用C語言編寫2025年曆(急求!!!)

mfc 和 delphi嗎?你知道這樣沒有意義又很麻煩嗎 沒價值 自己動手修改乙個函式就好了 include include define days 366 struct calendar void createcal struct calendar year 建立2008年日曆 int findw...