蛇形矩陣的一種解法(C語言)

2021-08-09 05:12:16 字數 1141 閱讀 2051

; //錨定中心點

int i = n/2;

int j = n/2;

int k = 0;

int dir[4] = ;

a[i][j] = num;

num++;

while(num <= n*n)

while(flag_feet != feet);//直到挪動到指定步數

k++;

break;

case down :

flag_feet = 0;

dowhile(flag_feet != feet);

k++;//方向改變

feet++;//只有向上和向下時,才改變步長

break;

case left :

flag_feet = 0;

dowhile(flag_feet != feet);

k++;

break;

case up :

flag_feet = 0;

dowhile(flag_feet != feet);

k++;

feet++;

break; }}

for(i=0;i//為了看起來更像彎曲的蛇,因此需要控制空格數量。

}

putchar('\n');

}} return 0;

}

思路非常簡單,首先明確兩個

1.方向。

2.步長。

此種蛇形矩陣的規律為右1下1,左2上2,以此類推。因此我們只要設定蛇形矩陣方向是四種方向,然後每次行走的距離需要一步一步走到設定的步長即可。

c語言寫蛇形矩陣

這道題我真的也弄了很久。演算法分析 首先我們把它分成上三角和下三角。我們可以把上三角賦值想這樣子1,2 3,4 5 6,7 8 9 10,11 12 13 14 15.第1次賦值是1次,第2次是2次,第3次是3次.所以外迴圈是n次,內迴圈次數等於該次輸出數字的最大行數。然後我們看奇數行和數行的行走的...

C語言演算法(1) 蛇形矩陣

題目來自 c語言網 題目描述 蛇形矩陣是由1開始的自然數依次排列成的乙個矩陣上三角形。輸入本題有多組資料,每組資料由乙個正整數n組成。n不大於100 輸出對於每一組資料,輸出乙個n行的蛇形矩陣。兩組輸出之間不要額外的空行。矩陣三角中同一行的數字用乙個空格分開。行尾不要多餘的空格。樣例輸入 5 樣例輸...

Poj 3328的一種解法

題目描述 今天上午想把3328題做了,一看發現有點難。於是,便上網搜解題報告,最終還是沒找到乙個解題報告。決定自己把它搞定了。看了discussion,有人說要用優先佇列和dij演算法或者dfs再或者bfs,但是我沒用過優先佇列,上午的時間就拿來簡單的學學優先佇列,再複習一下dij演算法。下午又把題...