C二級 魔方陣列,C語言做的魔方陣

2025-05-05 16:50:05 字數 3425 閱讀 2979

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。

計算機二級c語言題,計算機二級C語言題

樓主,我按你的問題思路來哈!為什麼c2是 b 因為p2的地址沒變,而被調函式將p1的地址換為了p2的,然後再使p2的值自增1,所以為 b 形參的值不少不能給實參嗎?這裡並沒有返回值,它只是通過被調函式進行了地址運算和值的自增,所以根本無需返回值。為什麼呼叫函式算出的c2的值還要返回 這裡請樓主注意哈...

計算機二級C語言,計算機二級C語言怎麼學?

只能說你比較有勇氣,跟我考駕照一個模式,沒練車科目二居然順利通過,只能看運氣了。這個就是做題不用知道為什麼就是機械式的做就行了 我記得有100套題吧都做了就能過 看下 c語言程式設計 我估計你連夜搞,應該還是可以考個及格的,這個要刻苦,真的,二級不是太難,只要這本書你看了5遍,基本上就可以了,還要多...

includestdio h關於c語言二級int k 7,m 5 void f intsint t

傳地址的變,傳值得不變。在給a和b分別賦值5,9後,把a的地址1703740給了指標變數pointer 1,把b1703736的地址給了指標變數pointer 2 為了方便,地址用 d輸出,不同的pc,情況不同,但是原理都一樣 然後呼叫函式,把指標儲存的值 a b的地址 傳遞給p1 p2指標。在呼叫...