1. 程式人生 > >C語言博客作業03---函數

C語言博客作業03---函數

學習 then 哥德巴赫猜想 src 發現 要求 都是 編譯 即使

1.本章學習總結

1.1思維導圖

技術分享圖片

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

1.2.1學習體會

這周主要學習了函數的一些基本內容,了解到了局部變量,全局變量等,函數在解題方面把內容分成模塊,使用起來會比較容易理解,看著層次分明點,但是在函數的調用這塊我還不是很熟練,還好相關題目做起來好像不是很難,pta寫得還算比較順暢,有些不懂的題目也及時問了同學,在做題的過程中獲得了成就感,總之這周的C語言學習還算愉快~~

1.2.2代碼累計

技術分享圖片

2.PTA總分

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

技術分享圖片

2.2 我的總分

函數得分:145
總分:145

3.PTA實驗作業

3.1 PTA題目1

本題要求實現一個判斷素數的簡單函數,並利用該函數驗證哥德巴赫猜想:任何一個不小於6的偶數均可表示為兩個奇素數之和。素數就是只能被1和自身整除的正整數。註意:1不是素數,2是素數。

3.1.1 算法分析

判斷是否是素數的函數
for i=2 to p;
     if  p%i=0  
        break跳出for;
if  i==p
     返回1;
else 
     返回0;

輸出哥德巴赫猜想的函數
定義flag;
for p=2 to p<n  then do    
           if   p>q且p%i==0      //判斷p是否有因數,有就不是素數
               break;
           if   q%i==0
                break;
           if    i==q-1      then do             //此時循環結束,輸出
                輸出n=p+q;
end  for

3.1.2 代碼截圖

技術分享圖片
技術分享圖片

3.1.3 測試數據

測試數據1
技術分享圖片
測試數據2
技術分享圖片

3.1.4 PTA提交列表及說明

技術分享圖片
技術分享圖片
~~~
1.剛開始一個prime函數裏的素數判斷出錯了,就第二個if語句的判斷條件寫成了i<=p,在編譯器上運行調試的時候沒有發現,後來改回i==p答案正確.
2.有多個答案正確是因為後來發現自己寫的輸出哥德巴赫猜想的函數有點復雜,看了別的同學提交的博客作業,發現有更簡便的方法,所以在pta上又打了一遍.
~~~

4.大作業

4.1 函數關系圖

技術分享圖片

4.2 函數功能介紹

1.函數1

技術分享圖片ji
~~~
這是一個菜單函數,因為考慮到有三個題目難度級別的選擇,所以為了更方便點,獨立設計一個函數專門來存放這三個級別,供用戶選擇,
即當用戶輸入相應數字時進入相應難度級別的題目集;
~~~

2.函數2

技術分享圖片
技術分享圖片
~~~
這是三個難度級別中的設計一級難度的函數,當用戶選擇一級難度的題目時,函數調用進入到該函數,然後實現函數的功能,產生
相應難度的題目;其他兩個難度級別的函數同理;
~~~

4.3運行結果截圖

技術分享圖片

技術分享圖片
技術分享圖片

4.4 調試碰到問題及解決辦法

1.一開始在選擇菜單時,如果熊孩子輸入除了1,2,3之外的數字或者字符,不知道怎麽讓它執行,然後加了一個default : exit(0);
讓熊孩子輸入非法字符時,直接退出程序;
2.除法運算那塊,答案自動取整的問題還有待解決;

4.5 大作業總結

這個大作業代碼量真的是蠻大的,過程有點曲折;自己設計函數,不懂的地方自己去找資料,問同學,還要處理函數銜接的問題。。。。。
給我的感覺就是好麻煩吶,折騰了幾天,做出一點苗頭的時候,感覺有了接下去的動力,想要努力去完成它,在設計這個程序的過程中,
每解決一個小問題都是一個進步,盡力去完善這個程序,即使最後它還是有很多問題,但還是覺得有成就感。

C語言博客作業03---函數