<ruby id="tfdtx"><mark id="tfdtx"></mark></ruby>

<address id="tfdtx"><nobr id="tfdtx"><progress id="tfdtx"></progress></nobr></address>

<noframes id="tfdtx">
<form id="tfdtx"></form>

<form id="tfdtx"></form>

<sub id="tfdtx"></sub>

直播帶貨服務

二維數組的應用及應用案例

二維數組在概念上是二維的,但在內存中是連續存放的;換句話說,二維數組的各個元素是相互挨著的,彼此之間沒有縫隙。那么,如何在線性內存中存放二維數組呢?有兩種方式:

  • 按行排列, 即放完一行之后再放入第二行;

  • 按列排列, 即放完一列之后再放入第二列。

二維數組的應用及應用案例

【案例描述】

按下圖將數字矩陣化輸出。要求:輸入數字,輸出該數字的矩陣表示。輸入的數字不是[0,9]上的整數時,需重新輸入。

二維數組的應用及應用案例

【案例分析】

             從上面的數字化矩陣可以看出:組成數字的各行只有五種狀態:

001:即左側二個方格為空,右側一個方格非空。標記為“0”狀態。

010:只有中間方格非空,標記為“1”狀態。

100:只有左側方格非空,標記為“2”狀態。

101:只有中間方格為空,標記為“3”狀態。

111:三個方格均非空,標記為“4”狀態。

         用一個數組保存各狀態的顯示字符:

char a[5][7]={"    ●","  ●  ","●    ","●  ●","●●●"};

其中a[k]對應狀態k的字符串。k=0,1,2,3,4。

注意:字符“●”顯示時會占2個字符位,故在數組a中,一個空位需要輸出2個空格。

十個數字各行顯示的字符串用狀態記錄,得到以下數組:

char b[10][5]={{4,3,3,3,4},{1,1,1,1,1},{4,0,4,2,4}, {4,0,4,0,4},{3,3,4,0,0},{4,2,4,0,4},{4,2,4,3,4}, {4,0,0,0,0},{4,3,4,3,4},{4,3,4,0,4}};

       那么,數字k第i行應顯示的字符串就是a[b[k][i]]。

二維數組的應用及應用案例

【參考代碼】

#include<stdio.h>

main()

{ char i,k,a[5][7]={"    ●","  ●  ","●    ","●  ●","●●●"};

  char b[10][5]={{4,3,3,3,4},{1,1,1,1,1},{4,0,4,2,4},

  {4,0,4,0,4},{3,3,4,0,0},{4,2,4,0,4},{4,2,4,3,4},

  {4,0,0,0,0},{4,3,4,3,4},{4,3,4,0,4}};

  while(1)

  {  setbuf(stdin,NULL);

scanf("%d",&k);

     if(k>=0&&k<=9)break;

  }

  for(i=0;i<5;i++)printf("%s\n",a[b[k][i]]);

}


© Copyright 六六互聯.Some Rights Reserved.www.ic.vip
三级在线看中文字幕完整版