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