C語言--第3次作業
阿新 • • 發佈:2018-11-13
1.本章學習總結
1.1思維導圖
1.2 本章學習體會及程式碼量學習體會
1.2.1學習體會
- 我眼中的函式 這一章接觸到了新的知識——函式,不同於之前所學的程式設計,函式具有很清楚的分工性,且可以用來多次呼叫,解決程式碼重複問 題,增加程式碼可讀性 - 我的函式學習 畢竟是新知識,剛開始學習時還是有點迷迷糊糊,雖然可以設計一些簡單的函式,但閱讀複雜程式碼時不太能看明白結構,但在老師的講解和課堂互動過後,逐漸熟悉函式,覺得挺有意思的,非常有條理性。在做過一些題之後,關於函式的程式設計我的總結是,先將整個程式分成幾大板塊,分為主函式和自定義的函式,思考主函式怎樣合理呼叫函式、自定義的函式應用哪一個型別、是否需要返回結果,一定要熟悉格式,有合理清晰的思路之後再開始程式設計。 - 需要注意的地方 在實參和形參重名的時候,不太能分得清到底結果應該怎麼計算;函式相關的練習不太夠,應該再找一些題目更加熟悉函式的思路和格式;在對於全域性變數和區域性變數甚至是靜態變數的擇優選擇時,不太熟練掌握;對於方便但是不熟悉的函式來講,總是會選擇複雜但是熟悉的程式設計,應該熟練運用函式,提高函式質量。
1.1.2程式碼累計
2.PTA總分
2.1排名得分
2.2我的總分
3.PTA實驗作業
3.1PTA題目1
驗證哥德巴赫猜想
- 判斷p是否為素數
- 將給定範圍內的偶數拆成兩個奇素數p,q
- PS:要求p為最小的情況
3.1.1 演算法分析
函式一 判斷p是否為素數 考慮特殊情況:1不是素數,2是素數 - if(p==1) return 0; - else if(p==2) return 1; 素數判斷:- p對於 2 to p/2+1 進行除法運算, - for i= 2 to p/2+1 - if(p%i==0) return 0; //不是素數 - end for - return 1;//是素數 函式二 將範圍內的偶數拆分: - 要求p為最小且為奇素數 - for p=3 to p=n - if(p為素數) q=n-p; - then if(q為素數) 輸出p+q=n; - end
3.1.2 程式碼截圖
3.1.3 測試資料
3.1.4 PTA提交列表及說明
4.大作業
4.1函式關係圖
4.2函式功能介紹
1.函式一 主函式
- 顯示選單,提示使用者選擇題集
- 呼叫三種題集對應的函式
2.函式二&&函式三&&函式四
- 提示使用者輸入需要的題量
- 產生隨機數和隨機字元,組成一道四則運算題
- 將使用者輸入的結果與數字對比,判斷結果
- 在兩題之間設計快捷鍵提前退出試題
- 計算使用者的正確率
三個函式大體一致,區別於隨機數的範圍以及函式三、四兩步運算的隨機字元
3.函式五&&答案六 答案正確||答案錯誤
從課堂派的一道題中得到思路,為了豐富試題,隨機輸出四種意為“答案正確”或是“答案錯誤”的語句,為了方便且避免程式碼重複,採用函式的形式,供函式二、三、四 呼叫
4.函式七 結尾函式
- 對使用者的答題情況進行統計宣佈,包括:答題量、答對題數、答錯題數、正確率
4.3執行結果截圖
4.4 除錯碰到問題及解決辦法
- Q:忽略輸入非法字元的情況
- S:林麗老師講解,以及同學的提示,switch語句末尾加上default情況,要求重新輸入提供的三個題集;
- Q:不知道怎麼隨機產生兩位數
- S:百度搜索,請教同學;
- Q: 清零函式的使用不熟練
- S:查資料清楚使用格式,仔細斟酌之後確定清零函式的位置;
- Q: 進行除法時,產生無法整除的現象
- S:結果統一保留兩位小數,並提示使用者