1. 程式人生 > >c部落格作業--函式

c部落格作業--函式

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 大作業總結

 

本次大作業遇到的主要問題就是函式的套用和不合法資料輸入的解決問題方面,
通過此次大作業也得到了一些問題的解決方法,對程式碼的邏輯理解方面有一定的增強