1樓:陀乃
/運算過程就是按照特定的規律賦值。
n=3 時。
a[1][2]=1
a[3][3]=2 行號減,列號增。
a[2][1]=3
行號增,列號不變。
a[3][1]=4
a[2][2]=5 行號減,列號增。
a[1][3]=6
行號增,列號不變。
a[2][3]=7
a[1][1]=8 行號減,列號增。
a[3][2]=9
你明白魔方構造的規律,**就好理解了。山磨高。
#include""
#include
void main()
int a[16][16],i,j,k,p,m,n;
clrscr();
system("cls");
p=1;while(p==1)
printf("enter n(n=1~15):"
scanf("%d",&n);
if((n!=0)&&n<=15)&&n%2!=0))p=0;for(i=1;i<=n;i++)for(j=1;j<=n;j++)
a[i][j]=0;
printf("%d\t%d"逗尺,i,j);
j=n/2+1;
a[1][j]=1; /第一行中間位置為1for(k=2;k<=n*n;k++)
i=i-1;
j=j+1; /向右上走。
if((i<1)&&j>n)) 超過邊界,進入左側或下側。
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; /數字依次增加。
else //本對角線已走完。
i=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("");
2樓:輕風留香
通過轉換成mpg,然後用開啟,點選旋轉,然後再儲存實現翻轉的,
3dmax運用陣列製作魔方,引數值該如何確定
3樓:網友
只需用到平移即可,假設你使用100*100*100的方塊作為基本塊首先x方向陣列三個,陣列距離為105(比100大有縫隙感,但是別太大不像魔方)
在以三個為一組,y方向陣列三個,距離105以全部為一組,z方向陣列三個,距離為105做好了,如果覺得縫隙大,可調小數值,但最低為100
4樓:
用3d陣列方式 3個軸向分別選擇數量 然後將要陣列的物體3軸向的偏移設定好。
c語言,要求用2階陣列列印n階魔方陣,完全不會,跪求大神指點
5樓:網友
#include
#include
#define n 9
int main()
i=0,j=n/2,n;
a[i][j]=1;
for(n=2;n<=n*n;n++)
elseif(a[i][j])
a[i][j]=n;
for(i=0;i
根據題意可得以上**。
6樓:寒曦的海洋
題目描述再詳細點。這樣的問題別人看不明白沒法幫你~
c語言做的魔方陣
7樓:網友
我奇怪你的語法怎麼可能沒錯,int str[n][n];肯定是編譯不通的,陣列定義時長度必須是常量。給你乙個我自己寫的魔方陣演算法吧,算作參考。
#include
#define n 100
void sort(int *p,int num)sort(p,n);
for(i=0;i 8樓:聽不清啊 下面是乙個列印奇數階魔方陣的程式: #include int main() while(!(n%2)) c語言 三階魔方陣 9樓:網友 我只想說你的演算法錯了,你還是去查一查魔方陣的演算法吧;下面是n階奇數魔方陣的程式,你好好看看吧: # include void main() int array[16][16]; int i, j, k, m, n; 變數初始化 */ m = 1; while(m == 1) printf("請輸入n(0scanf("%d", &n); 判斷n是否是大於0小於等於15的奇數 */if((n!=0) &n<=15) &n%2!=0))printf("矩陣階數是 %d", n); m = 0; 陣列賦初值為0 */ for(i=1; i<=n; i++) for(j=1; j<=n; j++) array[i][j] = 0;/* 建立魔方陣 */j = n/2 + 1; array[1][j] = 1; for(k=2; k<=n*n; k++)i = i - 1; j = j + 1; if((i<1) &j>n)) i = i + 2; j = j - 1; elseif(i < 1) i = n; if(j > n) j = 1; if(array[i][j] == 0) array[i][j] = k; elsei = i + 2; j = j - 1; array[i][j] = k; * 輸出魔方陣 */ for(i=1; i<=n; i++) for(j=1; j<=n; j++) printf("%5d", array[i][j]); printf(""); 輸入3所得到的三階魔方陣為: 10樓:丶殺手丶 三階魔方陣。用三維陣列才行。你這一維怎麼輸出啊? 誰能給解釋下c語言魔方陣的演算法原理? 11樓:小雪 這個只能實現奇價的: 演算法: 魔方陣的排列規律(奇數陣): 將1放在第一行中間一列。 從2開始直到n×n止各數依次按下列規則存放:每乙個數存放的行比前乙個數的行數減1,列數加1。 樓主,我按你的問題思路來哈!為什麼c2是 b 因為p2的地址沒變,而被調函式將p1的地址換為了p2的,然後再使p2的值自增1,所以為 b 形參的值不少不能給實參嗎?這裡並沒有返回值,它只是通過被調函式進行了地址運算和值的自增,所以根本無需返回值。為什麼呼叫函式算出的c2的值還要返回 這裡請樓主注意哈... 只能說你比較有勇氣,跟我考駕照一個模式,沒練車科目二居然順利通過,只能看運氣了。這個就是做題不用知道為什麼就是機械式的做就行了 我記得有100套題吧都做了就能過 看下 c語言程式設計 我估計你連夜搞,應該還是可以考個及格的,這個要刻苦,真的,二級不是太難,只要這本書你看了5遍,基本上就可以了,還要多... 傳地址的變,傳值得不變。在給a和b分別賦值5,9後,把a的地址1703740給了指標變數pointer 1,把b1703736的地址給了指標變數pointer 2 為了方便,地址用 d輸出,不同的pc,情況不同,但是原理都一樣 然後呼叫函式,把指標儲存的值 a b的地址 傳遞給p1 p2指標。在呼叫...計算機二級c語言題,計算機二級C語言題
計算機二級C語言,計算機二級C語言怎麼學?
includestdio h關於c語言二級int k 7,m 5 void f intsint t