开心六月综合激情婷婷|欧美精品成人动漫二区|国产中文字幕综合色|亚洲人在线成视频

    1. 
      
        <b id="zqfy3"><legend id="zqfy3"><fieldset id="zqfy3"></fieldset></legend></b>
          <ul id="zqfy3"></ul>
          <blockquote id="zqfy3"><strong id="zqfy3"><dfn id="zqfy3"></dfn></strong></blockquote>
          <blockquote id="zqfy3"><legend id="zqfy3"></legend></blockquote>
          打開APP
          userphoto
          未登錄

          開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

          開通VIP
          C語言數(shù)組應(yīng)用之圖形數(shù)字的輸出

          C語言數(shù)組應(yīng)用之圖形數(shù)字的輸出

          今天做《C語言程序設(shè)計(jì)——現(xiàn)代方法》的習(xí)題,發(fā)現(xiàn)數(shù)組這塊有一道有意思的圖形數(shù)字的題目。特此記載。

          程序效果如下:


          首先,程序使用一個(gè)MAX_DIGITS的宏來控制最多輸出的數(shù)字。若數(shù)字輸出個(gè)數(shù)多于該宏,將被忽略。除數(shù)字外的其他字符將被忽略。

          使用segments函數(shù)存儲(chǔ)圖形數(shù)字的相應(yīng)信息。數(shù)字被分為7個(gè)部分,編號(hào)如下:


          所以segments數(shù)組為二維數(shù)組,107列,分別保存0~910個(gè)數(shù)字的對(duì)應(yīng)位置的圖形。其中,橫線使用1表示,豎線使用2表示,空白使用0表示。

          digits數(shù)組則是一個(gè)3MAX_DIGITS*4列的數(shù)組(乘以4是因?yàn)橐趦蓚€(gè)數(shù)字之間插入空格,所以是4而不是3)。用以存儲(chǔ)用戶輸入的字母信息。

          clear_digits_array(void)函數(shù)用以初始化digits數(shù)組。process_digit(int digit, int position)函數(shù)用以將數(shù)字digit存入相應(yīng)的位置。print_didgits_array(void)函數(shù)用以打印digits數(shù)組。

          源程序如下:

          1. /************************************************** 
          2.  * DigitsNumber.c                                          * 
          3.  * Input numbers and print them in digit type* 
          4.  * by Eric Brown                                            * 
          5.  **************************************************/  
          6.   
          7. #include<stdio.h>  
          8. #include<stdlib.h>  
          9.   
          10. #define MAX_DIGITS 10  
          11.   
          12. void clear_digits_array(void);  
          13. void process_digit(int digit, int position);  
          14. void print_digits_array(void);  
          15.   
          16. int segments[10][7] = {{2,1,1,0,1,1,2},{0,0,1,0,0,1,0},{2,0,1,2,1,0,2},  
          17.                        {2,0,1,2,0,1,2},{0,1,1,2,0,1,0},{2,1,0,2,0,1,2},  
          18.                        {2,1,0,2,1,1,2},{2,0,1,0,0,1,0},{2,1,1,2,1,1,2},  
          19.                        {2,1,1,2,0,1,2}};  
          20. int digits[3][MAX_DIGITS * 4];  
          21.   
          22. int main()  
          23. {  
          24.     int i;  
          25.     char num;  
          26.     printf("Enter a number: ");  
          27.   
          28.     clear_digits_array();  
          29.     for(i = 0; i < MAX_DIGITS;)  
          30.     {  
          31.         num = getchar();  
          32.         switch(num)  
          33.         {  
          34.             case '0': process_digit(0, i); i++; break;  
          35.             case '1': process_digit(1, i); i++; break;  
          36.             case '2': process_digit(2, i); i++; break;  
          37.             case '3': process_digit(3, i); i++; break;  
          38.             case '4': process_digit(4, i); i++; break;  
          39.             case '5': process_digit(5, i); i++; break;  
          40.             case '6': process_digit(6, i); i++; break;  
          41.             case '7': process_digit(7, i); i++; break;  
          42.             case '8': process_digit(8, i); i++; break;  
          43.             case '9': process_digit(9, i); i++; break;  
          44.             case '\n': i = MAX_DIGITS; break;  
          45.         }  
          46.     }  
          47.     print_digits_array();  
          48.   
          49.     system("pause");  
          50.     return 0;  
          51. }  
          52.   
          53. /************************************************** 
          54.  *clear_digits_array:initialize the digits          * 
          55.  *                             array.                              * 
          56.  **************************************************/  
          57.   
          58. void clear_digits_array(void)  
          59. {  
          60.     int i, j;  
          61.     for(i = 0; i < 3; i++)  
          62.         for(j = 0; j < MAX_DIGITS * 4; j++)  
          63.         {  
          64.             digits[i][j] = 0;  
          65.         }  
          66. }  
          67.   
          68. /************************************************** 
          69.  *process_digit:process the number's segment in   * 
          70.  *              digit array in proper position.        * 
          71.  **************************************************/  
          72.   
          73. void process_digit(int digit, int position)  
          74. {  
          75.     int i = position * 4;  
          76.     digits[0][i + 1] = segments[digit][0];  
          77.     digits[1][i]     = segments[digit][1];  
          78.     digits[1][i + 2] = segments[digit][2];  
          79.     digits[1][i + 1] = segments[digit][3];  
          80.     digits[2][i]     = segments[digit][4];  
          81.     digits[2][i + 2] = segments[digit][5];  
          82.     digits[2][i + 1] = segments[digit][6];  
          83. }  
          84.   
          85. /************************************************** 
          86.  * print_digits_array: to print the numbers in * 
          87.  *                     digit way.                                * 
          88.  **************************************************/  
          89.   
          90. void print_digits_array(void)  
          91. {  
          92.     int i, j;  
          93.     for(i = 0; i < 3; i++)  
          94.     {  
          95.         for(j = 0; j < MAX_DIGITS * 4; j++)  
          96.         {  
          97.             if(digits[i][j] == 0)  
          98.                 printf(" ");  
          99.             else if(digits[i][j] == 1)  
          100.                 printf("|");  
          101.             else if(digits[i][j] == 2)  
          102.                 printf("_");  
          103.         }  
          104.         printf("\n");  
          105.     }  
          106. }  
          本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
          打開APP,閱讀全文并永久保存 查看更多類似文章
          猜你喜歡
          類似文章
          C編程實(shí)踐:推箱子游戲
          c語言中怎么用二維數(shù)組作為函數(shù)參數(shù)
          指針與數(shù)組
          C語言二維數(shù)組作為函數(shù)參數(shù)?(陷阱)
          linux awk手冊(cè)
          螺旋數(shù)組,之字形數(shù)組
          更多類似文章 >>
          生活服務(wù)
          分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
          綁定賬號(hào)成功
          后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
          如果VIP功能使用有故障,
          可點(diǎn)擊這里聯(lián)系客服!

          聯(lián)系客服