1. 程式人生 > >C語言--第3次作業

C語言--第3次作業

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:結果統一保留兩位小數,並提示使用者