久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 188|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

C語言結(jié)構(gòu)體數(shù)組中sys_ctr_sys.preNum存入708三位數(shù)分拆時(shí)丟失0?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:645031 發(fā)表于 2025-4-25 09:37 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
  1. //將整數(shù)各位取出存放數(shù)組
  2. //num: 轉(zhuǎn)換的整數(shù)
  3. //buf: 轉(zhuǎn)換后存儲(chǔ)到數(shù)組內(nèi)
  4. //返回值: 整數(shù)的長度
  5. unsigned char int_to_array(unsigned int num)
  6. {
  7.         unsigned char cnt = 0;

  8.         if(num != 0)                //        傳入的數(shù)據(jù)不為0
  9.         {
  10.                 while(num != 0)
  11.                 {
  12.                         num /= 10;                                                        //num = 789
  13.                         cnt ++;                                                                                //記錄這個(gè)數(shù)是幾位數(shù)
  14.                 }
  15.         }
  16.         else                //傳入的數(shù)據(jù)為0
  17.                 cnt ++;
  18.         return cnt;
  19. }


  20. //獲取第1個(gè)計(jì)算書并顯示
  21. void get_pre_num_show(void)
  22. {
  23.         unsigned char tempbuf[SMG_SHOW_BITNUM] = {0};        //保存數(shù)碼管顯示
  24.         unsigned char key_cnt;                                                                //存儲(chǔ)按鍵按下的次數(shù)
  25. //        unsigned char j;                                                                                        //循環(huán)變量
  26.         unsigned char b;
  27.         unsigned char SIGN;
  28.         unsigned int Num;                                                                                                //獲取矩陣按鍵的按鍵值
  29.         
  30.         while(1)
  31.         {
  32.                 if(key_cnt == 0)                //還未輸入數(shù),顯示0
  33.                 {
  34.                         DisplayData[0] = 0;
  35.                 }
  36.                         
  37.                 //8位輸入有效
  38.                 Num = Key_GetState();
  39.                 if(key_cnt == 0 && Num !=16)
  40.                         DisplayData[0] = 16;
  41.                 if(key_cnt < SMG_SHOW_BITNUM)
  42.                 {
  43.                         //獲取0~9數(shù)值
  44.                         switch(Num)
  45.                         {
  46.                                 //7,8,9
  47.                                 case 0:
  48.                                 case 1:
  49.                                 case 2: tempbuf[key_cnt] = Num + 7;Display(tempbuf[key_cnt]);sys_ctr_sys.preNum = sys_ctr_sys.preNum*10 + (Num + 7);
  50.                                                                 key_cnt ++;break;
  51.                                 //5,6,7
  52.                                 case 4:
  53.                                 case 5:
  54.                                 case 6: tempbuf[key_cnt] = Num;Display(tempbuf[key_cnt]);sys_ctr_sys.preNum = sys_ctr_sys.preNum*10 + Num;
  55.                                                                 key_cnt ++;break;
  56. //                                //1,2,3
  57.                                 case 8:
  58.                                 case 9:
  59.                                 case 10: tempbuf[key_cnt] = Num - 7;Display(tempbuf[key_cnt]);sys_ctr_sys.preNum = sys_ctr_sys.preNum*10 + (Num - 7);
  60.                                                                 key_cnt ++;break;
  61.                                 //第一個(gè)輸入顯示0,則后面再輸入0還是顯示0
  62.                                 case 12:if(key_cnt == 0)
  63.                                                                         tempbuf[key_cnt] = Num - 12;
  64.                                                                 else
  65.                                                                 {
  66.                                                                         tempbuf[key_cnt] = Num - 12;Display(tempbuf[key_cnt]);
  67.                                                                         key_cnt ++;
  68.                                                                 }
  69.                                                                 break;
  70. //                                //清零
  71.                                 case 13:key_cnt = 0;
  72.                                                                 for(b = 0;b < SMG_SHOW_BITNUM;b++)
  73.                                                                 {
  74.                                                                         tempbuf[b] = 0;
  75.                                                                 }
  76.                                                                 DisplayClear();
  77.                                                                 SIGN = 0;
  78.                                                                 break;
  79.                                 //符號(hào)
  80.                                 case 3:DisplayClear();SIGN = 1;sys_ctr_sys.sign = SIGN_ADD;DisplayData[0] = 10;break;                // +        A
  81.                                 case 7:DisplayClear();SIGN = 2;sys_ctr_sys.sign = SIGN_MIN;DisplayData[0] = 11;break;                // -        B
  82.                                 case 11:DisplayClear();SIGN = 3;sys_ctr_sys.sign = SIGN_MUL;DisplayData[0] = 12;break;                // *        C
  83. //                                case 14:DisplayClear();SIGN = 5;sys_ctr_sys.sign = SIGN_EQUAL;DisplayData[0] = 14;break;        // =        E
  84.                                 case 15:DisplayClear();SIGN = 4;sys_ctr_sys.sign = SIGN_DIV;DisplayData[0] = 13;break;                // /        D
  85.                                 default:break;
  86.                         }
  87. //                        smg_display(smgbuf,SMG_SHOW_BITNUM + 1 - key_cnt);               
  88.                 }

  89.                 if(SIGN != 0)  //有符合鍵按下
  90. //                {
  91. //                        for(j = 0;j<key_cnt; j++)                //將數(shù)組內(nèi)數(shù)整合為一個(gè)整數(shù)
  92. //                        {
  93. //                                sys_ctr_sys.preNum += tempbuf[j]*num_pow(10,key_cnt - 1 - j);        //789=0+7*10^2+8*10^1+9
  94. //                        }
  95. ////                                sys_ctr_sys.preNum += sys_ctr_sys.curNum;//?
  96.                         break;
  97. //                }        
  98.         }
  99. }

  100. void get_num_show()
  101. {
  102.    unsigned int tempbuf[SMG_SHOW_BITNUM] = {0};        //保存數(shù)碼管顯示
  103.    unsigned char bitnum;   
  104.    long rnum;
  105.    unsigned char j;                                                                                        //循環(huán)變量
  106.    long n;
  107.    unsigned char i;

  108.    DisplayData[0] = 16;
  109.    Delay2000ms();
  110.    bitnum = int_to_array(sys_ctr_sys.preNum);   //789,bitnum = 3;
  111.    rnum = sys_ctr_sys.preNum;


  112.    if(rnum != 0)                //        傳入的數(shù)據(jù)不為0
  113.    {
  114.       i=bitnum -1;
  115.       while(rnum != 0)
  116.       {
  117.          n = rnum % 10;
  118.          if(n == 0)
  119.          tempbuf[i] = 0;
  120.          else
  121.          tempbuf[i] = n;        //將各個(gè)位的數(shù)賦值于數(shù)組tempbuf[j],789

  122.          rnum /= 10;                                                        //現(xiàn)在數(shù)組tempbuf[j]記錄的是各個(gè)位上的數(shù)的反序

  123.          i--;
  124.       }
  125.    }
  126.    for(j = 0;j < bitnum;j ++)
  127.    {
  128.       Display(tempbuf[j]);
  129.    }
  130.     while(1);
  131. }
復(fù)制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:108361 發(fā)表于 2025-4-25 15:44 | 只看該作者
結(jié)構(gòu)體聲明在哪?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 99久久精品国产一区二区三区 | 欧美精品一区二区三区在线播放 | 欧美一区二区三区的 | 欧美精品一区二区三区四区五区 | 日韩欧美一区二区三区免费观看 | 91视频在线 | 国产精品 亚洲一区 | 欧美大片久久久 | 伊人操| av日韩在线播放 | 偷派自拍| 精品久久一区 | 亚洲精品一二三 | 亚洲黄色av | 国产免费拔擦拔擦8x高清 | 69xxx免费| 国产精品久久久久久久久久 | 久草日韩 | 牛牛热在线视频 | 日本免费视频在线观看 | 日韩精品视频在线 | 国产一级在线 | av在线播放不卡 | av中文字幕网 | 亚洲一区 中文字幕 | 欧美成人第一页 | 日韩一区中文字幕 | 综合久久综合久久 | 国产综合一区二区 | 国产午夜精品一区二区 | 亚洲一区三区在线观看 | 国产我和子的乱视频网站 | 久久午夜精品福利一区二区 | 欧美 日韩 国产 在线 | 一区二区三区日本 | 国产精品久久精品 | 免费观看色 | 少妇午夜一级艳片欧美精品 | 欧美成人黄色小说 | 亚洲欧美激情网 | 国产精品久久久久久久久久 |