C語言--第五次做業--指針

1.本章學習總結

1.1 思惟導圖

1.2本章學習體會及代碼量學習體會

1.2.1學習體會

沒想到都已經學習完C語言的靈魂—指針的內容了(固然也是C裏面最難學習的內容了)。雖然在以前就有聽學習進度比較快的同窗大概介紹過指針,不過那時候是僅限於知道這個是一個特好用的東西,不過開始學習就懵逼了,上課聽老師講課只知道這個指針指向那個地址又對應哪個內容,emmmm(自閉了)在通過一段時間學習指針後,。
在指針的調用還有它指向什麼內容仍是不是很掌握。數組和字符串和指針之間的聯繫,好比各元素的地址與數組名及數組名與首地址的對應關係,以及指針在數組、字符串中的儲存方式,還有就是發現指針能夠處理動態內存的分配問題,而且指針傳遞的是地址,這樣能夠大大節省計算機的儲存空間和運行成本,反正感受好處多多,不過要學好必需要下大功夫就是了。c++

1.2.2代碼累計

2.PTA總分

2.1截圖PTA中函數得分及排名

  • 函數總分: 100分算法

    3.PTA實驗做業

    3.1PTA題目1

    3.1.1算法分析

- 定義循環變量i,數組長度替代量n
- char *a=s,n=s數組長度-1
- for(i=0到n)同時數組首尾分別日後往前推動
- 在循環內,if(*(s+i)!=*(a+n)),break
- 循環外,if(i>n) return true
- else return false

3.1.2 代碼截圖

3.1.3 PTA提交列表及說明


Q1:一開始看到題目立刻就想到以前在數組也作過相似的的會問題,因此一開始就按照首尾遞進比較的方法來解決
A1:可是發現用並不能像數組那樣直觀,在devc++上面調,結果輸出都是對的,但是改來改去仍是有兩個點卡着
A2:一是刪減了定義的多餘指針變量,二是對循環條件進行了調整數組

4.大做業

在函數那章,咱們已經實現小學四則運算這份做業,如今要求你們把以前設計函數升級改造,原來的函數你們都是用全局變量實現不一樣函數參數傳遞,此次做業要求改地址傳遞,減小全局變量的使用。函數

4.1改造函數介紹

1.函數1

  • 僞代碼介紹函數思路
- int 計數替代量num,int 循環變量i,int 運算符選擇變量op
- 定義字符數組str
- if(level==1),i=3,
        while(i--)
         if(i%2==1) op取隨機數表明四種運算符
             switch(op)
                 case(0到3)將運算符在exp運算式子後鏈接起來
              else num=rand()%9+1
                      將整型變量num轉化爲字符型變量存入數組str中
                      將str數組中的字符串在exp運算式子後鏈接起來
- else if(level=2或3 )i=5
      while(i--)
      if(i%2) 
             switch(level)
                 case(2到3)num=rand()%90+10||rand()%900+100;break;
                                    將整型變量num轉化爲字符型變量存入數組str中
                                    將str數組中的字符串在exp運算式子後鏈接起來
       else op=rand()%2
               switch(op)
                     case(0到1)將運算符在exp運算式子後鏈接起來
                           將‘=’exp運算式子後鏈接起來
  • 截圖函數代碼

    學習

    2.函數2

    3.函數3

  • 僞代碼介紹函數思路
- int m=0,sum=0,i=0;char c,char old='+'
- do
{
        c = exp從第一個開始
        if(c<='9'&&c>='0') 
            m 將字符型數字轉化爲整型數字
        else 
        {
            if(oldc=='+'||'-'||‘*’||‘/’)
                sum '+'||'-'||‘*’||‘/’= m;
           m=0
           oldc=c
        }
        i++;
 } while(c不等於'='的時候)end
  返回 sum的結果;
  • 截圖函數代碼
    設計

    4.2 與原有函數代碼比較






    Q: 改造前函數和改造後的函數的不一樣及區別,優缺點。
    A:原先我式把三個等級分開來卸,各自獨自取隨機數,獨自運算,每次num循環,調用一次就能夠獲得一個隨機計算式子,每一次獨立輸出就行了,這一次不能用全局變量,改用指針傳參。沒改全,實際上改完後個人程序運行結果問題多多,還沒改好,不過也就把這個貼上來了,至於說選作的那個IsExp函數沒有能實現3d

    4.4 改進大做業總結

    兩次做業編寫過程,總結碰到問題及後續程序編寫注意事項

  • 說實話此次要求用指針加函數的寫法改進大做業我是懵逼的,由於指針用法不熟悉,因此有一種無從下手無從下手的感受,改了許多天,沒有進展,參照林麗老師的博客5的computerExp函數的寫法,依葫蘆畫瓢卻是寫出來了第三個函數,但是第一個函數怎麼弄仍是夢夢的,因而請教了同窗,也從老師推薦的曾俊韋同窗那裏學到了itoa(num,str,10)函數能夠直接實現遺傳整形轉化爲字符串,頭文件#include<string.h> 的知識指針

相關文章
相關標籤/搜索