問題 | 答案 |
---|---|
這個作業屬於那個課程 | C語言程序設計II |
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/9770 |
我在這個課程的目標是 | 學會利用for循環語句來設計循環程序 |
這個作業在那個具體方面幫助我實現目標 | 在循環程序的結構方面 |
參考文獻 | C語言程序設計(第3版) |
1.PTA實驗作業
1.1 7-3 求簡單交錯序列前N項和 (15 分)
內容描述:本題要求編寫程序,計算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N項之和。輸入在一行中給出一個正整數N。在一行中按照“sum = S”的格式輸出部分和的值S,精確到小數點后三位。題目保證計算結果不超過雙精度范圍。
1.1.1數據處理
數據表達:用了denominstor、flag、i、n、item、sum這些變量,其中denominstor、flag、i定義初始值為1,而n是通過scanf()函數來賦值的,item、sum通過累加而得到的。denominstor、flag、i、n為整型變量,item、sum為雙精度浮點型變量;
數據處理:運用到了for循環語句和循環結構,通過輸入N值來與i比較大小來進行反復循環計算,直到i>N得到結果。
1.1.2實驗代碼截圖
1.1.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
0 | 0.000 | 使用臨界值 |
10 | 0.819 | 使用題目所給數值 |
-1 | 0.000 | 使用負數 |
10000 | 0.836 | 使用較大數值 |
1.1.4 PTA提交列表及說明
提交列表:
提交列表說明:
1.段錯誤:沒有寫“&n”中的&,("sum = %.3f\n", sum)中“,”與“sum”沒有空格;
2.答案正確:通過改正就對了。
1.2 7-5 求交錯序列前N項和 (15 分)
內容描述:本題要求編寫程序,計算交錯序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N項之和。輸入在一行中給出一個正整數N。在一行中輸出部分和的值,結果保留三位小數。
1.2.1 數據處理
數據表達:運用了N、sum、sign、i這四個變量,其中N是通過scanf()函數來賦值,sum定義初始值為0,sign和i定義初始值為1。sum值通過循環累加而得,而sign在循環往復的變換符號,i在累加的基礎上再乘以2再減去1。N、sign、i為整型變量,sum為雙精浮點型變量;
數據處理:運用到了for循環語句、算術運算符和循環結構,通過輸入N值來作為i的比較值,然后通過 sum += (double)sign*i/(2*i-1); sign = -sign;這兩個表達式來計算所得值。
1.2.2 實驗代碼截圖
1.2.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
0 | 0.000 | 使用臨界值 |
5 | 0.917 | 使用題目所給數值 |
-1 | 0.000 | 使用負數 |
1000 | 0.393 | 使用較大數值 |
1.2.4 PTA提交列表及說明
提交列表:
提交列表說明:
1.答案錯誤:沒有在定義變量的時候直接賦值,和以前一樣,只是當當定義變量類型;
2.答案錯誤:沒有想到用sum += (double)signi/(2i-1)這個表達式(通過網上查詢到的,網址:https://blog.csdn.net/qq_36913610/article/details/81138328);
3.答案錯誤:在這個printf("%.3f\n", sum)表達式我按照以前寫成printf("sum = %.3f\n", sum)的格式;
4.答案正確:通過網上查詢得到printf("%.3f\n", sum)這個表達式,改正后就正確了;
5.答案錯誤:我想驗證一下是不是因為在printf("%.3f\n", sum)這個表達式我寫成printf("sum = %.3f\n", sum)而錯的,結果是的;
6.答案正確:我又改回來了,所以答案是正確的。
2.代碼互評(5分)
題目:7-4 求平方與倒數序列的部分和
同學代碼截圖
自己代碼截圖
不同之處:
1.程序中調用了數學函數,包含頭文件math.h;
2.定義的變量不同;
3.循環語句不同;
4.m的平方運用了冪函數
3.學習總結(15分)
3.1 學習進度條(5分)
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
10/14-10/20 | 10 | 105 | for循環語句和循環結構 | 不知道定義多少個變量 |
3.2 累積代碼行和博客字數(5分)
3.3 學習內容總結和感悟(5分)
3.3.1 學習內容總結
這一周我們學習了for循環語句和循環結構,祝願學習循環起點、循環條件、循環步長的表達式和循環體語句。循環起點的表達式:i=1;循環條件的表達式:i<=n(n是循環終點);循環步長的表達式:i++;循環體語句:sum=sum+i。即for(i=1; i<=n; i++){sum=sum+1.0/i}通過這些語法知識我們可以對進行往復相加減的數學題來編程。
3.3.2 學習體會
感覺for循環語句的學習比較易於接受,但是在做PTA上面的作業的時候還是出現的很多問題。比如連main錯寫成nain而導致編譯錯誤;再如printf("%.3f\n", sum)中不像以前那樣寫成printf("sum = %.3f\n", sum)。雖然是在網上查閱到的,但是我學會其他的表達式。剛開始寫這次PTA上面第一個編程題目時,連哪些該定義整型變量和那些該定義單精度浮點型變量沒有完全弄清楚,不過通過仔細琢磨和網上查閱相關資料終於弄明白了。所以說在學習當中要不斷的汲取可以得到的資源來豐富我們的大腦,並且還要把書本的知識點要理清。還有的時候自己寫了好久並且還檢查了而提交后出了錯誤,可能會有奔潰心理,但是我一定要克服困難,還要把問題解決,問問自己到底是哪里出錯並且該如何去解決。