C語言每日小練(二) 蛇形陣列

2021-12-29 20:55:04 字數 768 閱讀 6448

例:在n*n方陣裡輸入1,2,3,...,n*n,要求填成蛇形。例如n=4時方陣為:

10 11 12 1

9 16 13 2

8 15 14 3

7 6 5 4

上面的方陣中,多餘的空格知識為了便於觀察矩陣,不必嚴格輸出,n<=8。

解:此題需要小小地思考下:在按蛇形填充矩陣的過程中,我們注意到這個固定的過程:下、左、上、右、下、左、上、右... ...這個過程是迴圈的,也就是說我們找到了解決問題的規律~接下來只要模擬這個過程就可以了!

code:

#include

#include

int a[10][10];

int main()

{ int i, j, n, count;

memset(a, 0, sizeof(a));

scanf("%d", &n);

count = a[i = 1][j = n] = 1;//賦初值,方向為:右->左

while(count < n*n)

{while(i1 && !a[i][j-1]) a[i][--j] = ++count;//左

while(i>1 && !a[i-1][j]) a[--i][j] = ++count;//上

while(j在填充每個方向時,判斷下乙個位置是否合適(越界或已填充)~

執行結果:

C 蛇形陣列

例如 void print arr int arr2 n n 列印陣列 printf n sleep 200 sleep函式,使程式暫停200毫秒 system cls cls,清除螢幕中列印出來的內容 void order print int arr n n int circle 按順序列印 再定...

C語言 實現蛇形陣列

首先我們先看一下蛇形陣列是什麼 那麼我們要實現這個陣列,怎麼實現呢?我們可以看到,它每一圈的數字都是依次加1的,那麼就很容易想到用圈來實現,先算除要求的陣列有多少圈,然後每一圈可以分為4個迴圈,兩行兩列。具體實現 如下 include include define n 5 void print ar...

C語言之陣列小練

陣列在c語言中作用是很大的,這次我想要和大家討論的便是關於陣列的一些小問題,題目如下 實現乙個函式,將乙個陣列中的奇數放置於陣列的前半部分,偶數放置於陣列的後半部分。看起來也挺簡單的,但當你寫著寫著就會發現問題的存在了。思路 最開始我的想法是遍歷陣列,從前往後找到乙個偶數將它放到陣列的末尾,與其減緩...