C語言博客05--指針

1.本章學習總結算法

1.1 思惟導圖數組

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

1.2.1 學習體會

 

本章所學習的指針是一個嶄新的知識點,在以前的學習中從未接觸過,只知道數組的首地址,
因此學起來有點耗時間,雖然如今並未感受到指針的強大,可是稍微知道一點c語言的人都知
道指針是c語言在全部語言中最特殊的一塊,也知道下學期的數據結構會大量用到c語言,故
學起來仍是比較認真的,因此自認爲掌握得還不錯。

1.2.2 代碼累計數據結構

2.PTA總分函數

2.1截圖PTA中函數題目集的排名得分學習

2.2 個人總分測試

 

總分:110

 

3.PTA實驗做業spa

3.1 PTA題目13d

7-2 說反話-增強版 (20 分)
給定一句英語,要求你編寫程序,將句中全部單詞的順序顛倒輸出。
輸入格式:
測試輸入包含一個測試用例,在一行內給出總長度不超過500 000的字符串。字符串由若干單詞和若干空格組成,其中單詞是由英文字母(大小寫有區分)組成的字符串,單詞之間用若干個空格分開。
輸出格式:
每一個測試用例的輸出佔一行,輸出倒序後的句子,而且保證單詞間只有1個空格。

3.1.1 算法分析指針

```c
定義靜態字符數組p[500000]
定義整型數i,flag=-1  //flag用來控制單詞間只有一個空格
    for i=0 to (p[i]=getchar () )!='\n'   //當接收到換行符時中止
    p[i]='\0'  //將'\n'改成'\0'
    for i-- to i=0 do
        if p[i]=' ' then  //將空格所有轉化爲'\0'
            p[i]='\0'
        if i=0&&p[i]!='\0' then 
            printf("%s",p)      //若i=0時不是空格,則輸出最後一個單詞
        else if p[i]='\0'&&flag=1 then
            printf("%s",&p[i+1])   //一個個單詞輸出
        else if p[i]!='\0' then 
            if flag=0 then
                輸出空格      //在單詞間輸出一個空格
            flag=1
    end for
```

3.1.2 代碼截圖code

3.1.4 PTA提交列表及說明

Q1:第一遍作的時候,出現了單詞也反過來的問題
A1:從新審題發現題目看錯,通過修改解決了
Q2:後來又出現了,第1個單詞前面多了一個空格的現象
A2:通過修改解決
Q3:可是又出現單詞間空格消失的現象
A3:乾脆引入了一個flag,完美解決這個問題

4.大做業

4.1.改造函數介紹

1.函數1

2.函數2

3.函數3

4.3 與原有函數代碼比較

 

1.原來的代碼沒有用到指針而是用全局變量
2.原來的代碼用到的變量多,而用字符數組來存放算式能夠有效減小變量的使用,可避免因爲變量太多所致使的混亂
3.新增長了清屏的功能,可使運行界面看起來更加友好。
4.比起原來的代碼,如今的代碼看起來功能更加明瞭。

4.4 改進大做業總結

 

1.指針在代碼中的強大做用在這次大做業中初次感到
2.感受這次大做業還有些不足,沒有將代碼寫的更簡潔,這可能跟以前的寫法有關
3.指針的使用還不夠熟練,得繼續練習
4.與同窗的代碼相比,仍是功能欠缺
5.比起以前的代碼,bug有所減小
6.用字符數組來存放算式是一個好的方法,當實行起來並不順利。
相關文章
相關標籤/搜索