1.1 思維導圖
1.2 本章學習體會及代碼量學習體會
1.2.1 學習體會
剛剛開始學習函數的時候,由於之前對函數有過一定的了解,所以還算比較順利,
不過還是經常出現函數定義和調用的錯誤,這應該是對函數的使用還不夠熟練所
造成的,整體來說函數還是順利的學完了。
1.2.2 代碼累計
2.PTA總分
2.1截圖PTA中函數題目集的排名得分
2.2我的總分:
我的總分: 145
3.PTA實驗作業
3.1 PTA題目1
本題要求實現兩個函數:一個函數判斷給定正整數的各位數字之和是否等於5;另一個函數統計給定區間內有多少個滿足上述要求的整數,並計算這些整數的和。
3.1.1 算法分析
定義判斷各位之和是否為5的函數 //賦值形參number 定義x,y=0 do x=number%10 // 取個位數 number=number/10 //去掉個位數 y=x+y //計算每一位數的和 while number!=0 if y==5 do return 1; //返回1 else do return 0; 定義統計個數的函數 //賦值形參a,b 定義count=0,sum=0 定義i for i=a to i=b if (is(i)) do //調用上面的函數判斷i是不是符合要求 count++; //計算符合的個數 sum=sum+i; //計算所有符合的數的和 printf("count = %d, sum = %d",count,sum)
3.1.2 代碼截圖
3.1.3 測試數據
3.1.4 PTA提交列表及說明
ps:這題我的錯誤在編譯器里就修改了
Q1:第一遍多處出現了露分號的問題
A1:在無法運行后進行修改
Q2:后來在寫第二個函數的時候寫的太復雜
A2:之后嘗試了一下調用第一個函數,發現可以調用,使代碼變得更加簡潔
4.大作業
4.1函數關系圖
4.2.函數功能介紹
1.函數1
用來對一級難度題目進行輸出,對用戶輸入的數據合法性進行判斷
2.函數2
用來對二級難度題目進行輸出,對用戶輸入的數據合法性進行判斷
3.函數3
用來對三級難度題目進行輸出,對用戶輸入的數據合法性進行判斷
4.函數4
對一級難度的算式進行計算
5.函數5
對二和三難度的算式進行計算
6.函數6
正確答案和用戶輸入的進行比較
4.3 運行結果截圖
4.4 調試碰到問題及解決辦法
遇到了輸入錯誤數據會導致重新崩潰的情況 后來發現scanf有返回值,用返回值判斷有沒有輸入,再配上fflush解決了這個問題 當時發現y=0的情況就想在switch中把y=0的情況給排除,但這樣會沒有題目出現卻要輸入一個答案 后來把y=0的情況在difficult1中就排除了
4.5 大作業總結
本次大作業遇到的主要問題就是函數的套用和不合法數據輸入的解決問題方面,
通過此次大作業也得到了一些問題的解決方法,對代碼的邏輯理解方面有一定的增強