如上,小北按照到達的順序形成了44的矩陣。
現在給你乙個數字n,請你列印出這個小北走的nn步以後形成的矩陣。
單組輸入
輸入乙個整數你,代表小北走了n*n步(n<=15)
輸出乙個n行的矩陣。矩陣中同一行的數字用乙個空格分開。
(這裡為了方便觀察沒有按照這個要求輸出)
1 2 9
4 3 8
5 6 7
**如下:(詳細注釋在**內部)
~
#include
/*為了方便觀察與計算,二維陣列是從第一行第一列開始的*/
intmain
(void)}
//陣列向下移動的條件
if(j==x+1&&
(j-1)%
2==0)
//判斷當前列與行的關係,之所以j-1是因為上面的for迴圈會使j多加一次}if
((i-1)
==j&&
(i-1)%
2==0)
//上面的for迴圈使i多加了一次減回來再進行判斷
}//第一列向下移動的條件
if(i%2==
0&&(j+1)==1)
//j+1是因為上面的for迴圈會使減到0而我們的陣列是從1 1 開始的。
//向右移動賦值的條件
//奇數行且列是從第乙個開始的。
for(j=
1; j<=i; j++
)//向上賦值的條件if(
(j-1
)==i&&
(j-1)%
2!=0)
} i=1;
//開始下一次迴圈將行標賦值為1,上面的for迴圈會使i撿到0;
x=x+2;
//x代表下一次的陣列的列的最大值,因為列發生了改變
temp=temp-2;
}//簡單的迴圈輸出二維陣列,這裡調整了下輸出的格式。
int n;
scanf
("%d"
,&n);if
(n>=
1&&n<=15)
printf
("\n");
}}
蛇形矩陣的一種解法(C語言)
錨定中心點 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...
遞迴法解決回式蛇形矩陣的輸出(C語言的實現)
蛇形矩陣有多種,今天說的是下面這種回形的蛇形矩陣。如4x4的回形蛇形矩陣 如5x5的回形蛇形矩陣 通過分析發現,這種矩陣,在走一圈以後又變成乙個小2個的矩陣,如5x5的矩陣,從1 2 3。到14 15 16一圈後,變成了3x3的矩陣,因此可以使用遞迴的方式來解決這個問題。1.走一圈需要4個迴圈 1 ...
C語言 力扣 378 有序矩陣中第K小的元素
給定乙個 n x n 矩陣,其中每行和每列元素均按公升序排序,找到矩陣中第 k 小的元素。請注意,它是排序後的第 k 小元素,而不是第 k 個不同的元素。matrix 1,5,9 10,11,13 12,13,15 k 8,返回 13。該題目在力扣中屬於中等難度,因此確實是有些難到我了?不過沒事,最...