程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言每日小練(二)——蛇形數組

C語言每日小練(二)——蛇形數組

編輯:關於C語言

例:在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在填充每個方向時,判斷下一個位置是否合適(越界或已填充)~

運行結果:



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved