問題 |
答案 |
這個作業屬於那個課程 |
C語言程序設計II |
這個作業要求在哪里 |
C語言I博客作業04 |
我在這個課程的目標是 |
熟練掌握C語言 |
這個作業在哪個具體方面幫助我實現目標 |
已經可以脫離書本碼出一個for語句的代碼 |
參考文獻 |
Markdown基本語法 |
一.PTA實驗作業

1. 求交錯序列前N項和
題目內容描述:本題要求編寫程序,計算交錯序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N項之和。
(1)數據處理
數據表達:用了 變量N、n、A、D、sum、S、flag,N為所輸入的值,n為從1開始每一步加1至n=N。flag為標志,也就是奇數項為正,偶數項為負。A和D是根據題目的分子和分母的變化規律所賦予的值,sum和S是根據題目的要求所輸出的值。類型:N、n、A、D為整型,sum、S、flag為雙精度浮點型。
數據處理:用了for循環,用了表達式n=1、n<=N、n++、S=flag*A/D+S、flag=-flag、A=A+1、D=D+2。
(2)實驗代碼截圖

(3)造測試數據
輸入數據 |
輸出數據 |
說明 |
1 |
1.000 |
N是最小奇數 |
2 |
0.333 |
N是最小偶數 |
100 |
0.391 |
N是偶數 |
99 |
0.894 |
N是奇數 |
(4)PTA提交列表及說明

提交列表說明
1.答案錯誤:沒有看清題目的輸出要求,在第21行輸出的數據'%.3f"前加了sum。將%.3f前sum去掉就行。
2. 求N分之一序列前N項和
題目內容描述:本題要求編寫程序,計算序列 1 + 1/2 + 1/3 + ... 的前N項之和。
(1)數據處理
數據表達:用了變量N、n、sum、S,N為所輸入的值,n為從1開始每一步加1至n=N,sum和S是根據題目的要求所輸出的值。類型:N、n為整型,sum、S為雙精度浮點型。
數據處理:用了for循環,用了表達式n=1、n<=N、n++、S=(1.0/n)+S。
(2)實驗代碼截圖

(3)造測試數據
輸入數據 |
輸出數據 |
說明 |
5 |
2.283333 |
較小N |
100 |
5.187378 |
較大N |
(4)PTA提交列表及說明

提交列表說明
1.答案錯誤:第10行1后面沒有".0"。
剛開始在手機的C語言編譯器上發現不管輸入何值輸出的都為1.000000。然后認識到因為是浮點型,所以分子上的1后面要加".0"。也就是第10行1改為1.0。
二.代碼互評
同學代碼:

自己代碼:

比較
(1)該同學的代碼不拖泥帶水,直接在double后面將0賦於sum,而我是在定義完S的類型后,將D賦於S。
(2)該同學直接將大括號打在for語句體的后面,而我是另取一行與回括的大括號對齊,顯的比較整潔。
(3)該同學的代碼行數比我短,用更簡練的代碼做出了題目所需要的要求。
同學代碼

自己代碼

比較
(1)該同學選了許多英語單詞做變量,如分母denominator,而我覺得這個單詞太長碼起來太麻煩,所以直接用了該單詞的大寫首字母D。
(2)該同學有的代碼行之間有空格,如5、8行之間,8、10行之間,12、14之間,而我的是每個代碼緊湊在一起。
(3)因為該同學使用的denominator變量太長,顯得該代碼所占行太長,而我的代碼比較短。
三.學習總結
1.學習進度條
周/日期 |
這周所花的時間 |
代碼行 |
學到的知識點簡介 |
目前比較迷惑的問題 |
第四周/9.16~9.22 |
7小時 |
100行 |
在屏幕上顯示Hello World! |
暫無 |
第五周/9.23~9.29 |
8小時 |
100行 |
求華氏溫度對應的攝氏溫度 |
暫無 |
第六周/9.30~10.6 |
30小時 |
200行 |
如何用 MinGW-w64 來編譯C程序 |
暫無 |
第七周/10.7~10.13 |
24小時 |
300行 |
運用if語句完成各種數學程序 |
對於&&的用法不了解 |
第八周/10.14-10.20 |
24小時 |
300行 |
學會了for循環語句 |
暫無 |
2. 累積代碼行和博客字數

3 .學習內容總結和感悟
(1)學習內容總結
本周學習了for循環語句的用法
for語句的一般形式: for(表達式1;表達式2;表達式3){語句}
表達式1為設置循環初始條件,表達式2為判斷循環條件,表達式3為修改循環條件。
(2) 學習體會
感覺這個for循環語句比上周的else-if語句容易很多,或許只是因為經歷了上一周的學習讓我更加理解每一個字符是用來干什么的和如何去使用它。經過一次次的PTA作業,在一個個的格式錯誤、答案錯誤、部分正確中我感覺我的靈魂都得到了升華。從開始的對這門作業的痛恨到后面慢慢的做作業成了一種享受,也慢慢的喜歡上了這門課程。