C部落格作業05—指標
阿新 • • 發佈:2018-12-17
1.本章學習總結
1.1思維導圖
1.2本章學習體會及程式碼量學習體會
1.2.1 學習體會
- 理解了指標在程式碼中的使用方法,學會使用指標進行引數操作
- 學會了結構體的定義方式與結構體的使用
- 經過持續一個週末的大作業重寫,加強了指標在函式中的應用,學會利用陣列與指標的關係進行操作
1.2.2 程式碼累計
2.PTA總分
2.1截圖PTA中的排名得分
2.2 我的總分
指標:110
總分:110
3. PTA實驗作業
3.1 PTA題目1
給定一句英語,要求你編寫程式,將句中所有單詞的順序顛倒輸出。
3.1.1 演算法分析
輸入字串a
mark=strlen(a)
for i=mark-1 to 0
if a[i-1]=空格 且 a[i]!=空格 //a[i]為單詞首字母
p=&a[i]
flag++
3.1.2 程式碼截圖
3.1.3 測試資料
3.1.4 PTA提交列表及說明
說明:
Q1:陣列範圍不夠大造成越界
A1:陣列範圍加大至500001
Q2:發現最開始的思路出現了大量重複的無用判斷
A2:修正後執行時間大幅縮短
4.大作業
4.1 介紹改進函式
4.1.1 函式CreateExp
下級函式CreateNum
下級函式CreateOp
4.1.2 函式IsExp
在CreateExp函式中的使用方法
4.1.3 函式ComputeExp
4.2 和原版的比較
4.2.1 函式CreateExp
原版程式碼:
4.2.2 函式IsExp
emmm原版根本沒有這個函式
4.2.3 函式ComputeExp
原版程式碼:(沒錯還是這張圖)
4.3 改進大作業總結
- 原版的大作業只用了183行程式碼/三個函式完成了四則運算的操作,而且檢查輸入錯誤的方法異常詭異,完全沒有半點改的空間
- 主要是因為某位老哥在他上次的作業完美重現了我詭異的程式碼,
事實證明改了變數名程式碼查重就沒用了,我想看一下那位老哥要厲害到什麼程度才能改我上次做的神奇玩意- 所以本次大作業除了輸入提示和上次長得一樣,其它全盤推翻重寫
- 學會細化函式的分工,使main函式儘可能簡潔
- 用輸入字串代替輸入字元,防止程式出錯
- 用指標代替了全域性變數實現函式間引數改變
- 用查錯函式IsExp解決了小學生四則運算中出現的我也不會做的題,如:3/7
- 有多處使用了字串轉數字/數字轉字串的操作,一時半會沒法整出一個統一的函式進行轉換,下次將再改進