C語言I博客作業04


作業頭

這個作業屬於哪個課程 C語言程序設計II
這個作業的要求在哪里 C語言I作業04
我在這門課程的目標是 學好C語言為學習以后的語言做准備
這個作業在那個具體方面幫助我實現目標 對for語句的運用,運算細節(求小數),思考能力等
參考文獻 《C語言程序設計I》,《C Primer Plus》,Dev-c++.

1.PTA實驗作業

1.1求平方與倒數序列的部分和.

1.題目內容描述:

  • 本題要求對兩個正整數m和n(m≤n)編寫程序,計算序列和m2+1/m+(m+1)2+1/(m+1)+······+n^2+1/n.

1.1.1實驗代碼截圖.

1.1.2數據處理.

1.數據表達:

  • (1).定義了m,n兩個正整數,都是整型,還有雙精度浮點型sum(求和)。
  • (2).運用了math.h輸出頭文件,用了scanf()函數,for()語句。
    2.數據處理:
  • (1).輸入m,n,scanf("%d %d",&m, &n).
  • (2).循環條件for(m=m;m<=n;m++).
  • (3).運算處理sum=sum+pow(m,2)+1.0/m.
  • (4).輸出函數printf("sum = %lf",sum).

1.1.3 造測試數據.

輸入數據 輸出數據 說明
2 8 204.717857 m,n<10均為為正整數
50 60 33385.200665 m,n<=60均為正整數
100 200 2358350.700653 m,n<=200均為正整數

1.1.4PTA提交列表及說明.


編譯錯誤:開始時沒有考慮到在&m&n之間要用“,”所以導致了編譯錯誤.
解決方法:查閱書籍發現調用scanf()函數輸入多個數據時,需要用“,”分開&n&m等.

1.2求交錯序列前N項和.

1.題目內容描述:

  • 本題要求編寫程序,計算交錯序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N項之和。

1.2.1實驗代碼截圖.

1.2.2數據處理.

1.數據表達:

  • (1).定義了flag(用做符號的交替),n(輸入的正整數),變量i,都是整型,
  • (2).還有sum(求和),item變量,是雙精度浮點型。還用了scanf()函數,for()語句。
    2.數據處理:
  • (1).輸入正整數n,scanf("%d",&n).
  • (2).循環條件for(i=1;i <= n;i++).
  • (3).輸出函數printf("%.3f",sum).
  • (4).運算處理item=flag(1.0i/(2*i-1));sum=sum+item; flag=-flag.

1.2.3 造測試數據.

輸入數據 輸出數據 說明
1 1.000 10>n為正整數
68 0.391 10<n<100為正整數
168 0.392 100<n<200為正整數
668 0.393 200<n<1000為正整數
1086 0.393 1000<n<1100為正整數

1.2.4PTA提交列表及說明.


答案錯誤:做題不認真,我在printf()內輸入了Enter sum = %.3f,導致答案錯誤,
解決方法:在題目中說明了輸出的值只為一個數,后面把Enter sum去掉了,就正確了.

2.代碼互評.

1.同學代碼截圖:

2.同學代碼截圖:

3.自己代碼截圖:

與第一位同學的區別:

  • 1.在增值方面不同,她的代碼是i=i+2,而我的是i++,她的代碼在后面的編寫中要簡單一些,
    易懂,也很簡潔,而我的代碼在前面(賦值)的編寫中要簡單一些.
  • 2.在定義上我定義輸入的數為numble,而她是N,可見她的要簡潔一些,我的易懂一些.
  • 3.還有一個小細節,她在保留六位有效小數是%.6f,這當然沒有錯,而我的是%lf,都是一個意思.
    與第二位同學的區別:
  • 1.最主要就是在格式說明不同.
  • 2.同學是用%f,而我是用%lf,其實也沒有太大的區別,區別是
  • (1) 代表數據類型不同,%f(float)是單精度浮點型,%lf(double)是雙精度浮點型.
  • (2) 有效數字位數不同.單精度浮點數有效數字保證6位,部分7位,雙精度浮點數有效數字保證15位,部分16位。也就是說雙精度浮點型更加准確.
  • (3)所能表示數的范圍不同.單精度浮點的表示范圍:-3.40E+38 ~ +3.40E+38,雙精度浮點的表示范圍:-1.79E+308 ~ +1.79E+308.
  • (4).在程序中處理速度不同,一般來說,CPU處理單精度浮點型數要比雙精度浮點型數要快. 但讀入浮點數用%lf,輸出浮點數用%f.
    來自搜索引擎,第二點看不懂

3.學習總結.

3.1學習進度條.

時間 這周所花的時間 代碼行 學到的知識點簡介 目前比較迷惑的問題
第一周 16個小時 28行 學到了編寫代碼的基本知識,如:順序結構 符號(英)與(漢)混淆
第二周 20個小時 20行 學到了運算符,賦值 主要是賦值,在printf中“="左右要空格其他就不用了
第三周 23個小時 98行 學到了分支結構(if-else),&&,%,冪運算pow,平方根sqrt 對一些新知識不能馬上運用
第四周 16個小時 70行 學到了for語句,求小數點(要求用1.0來除以···),還有該變正負號知識 現在沒問題了,在scanf()內&n&m之間要用“,"

3.2累計代碼行數和博客字數.

3.3學習內容總結和感悟.

3.3.1學習內容總結.

本周學習了很多知識如:

  • 1. for() 循環語句、i++、 for(i=1;i<=n;i++) i從1開始循環到小於等於n,其中i++為先賦值i后再加1.
  • 2.flag正負號的轉換、 flag = -flag.
  • 3.求精確小數點,在計算機除法中要用有小數點的數除以一個數才能有精確小數點.
  • 4.用計算機可以解決(1). 序列和mˇ2​​+1/m+(m+1)ˇ​2+1/(m+1)+⋯+nˇ​2​​+1/n等等數學求和問題.

3.3.2學習體會.

1.感覺每次寫PTA作業都是先慢后快的,做每一個題都會有很多需要注意的地方,做完了第一題,后面要注意的也都會注意了.也就是從開時每天晚上寫到十一點半到十二點寫不出的難受,到后面靈感來了洗一個澡后一下就寫出一個題的開心,慢慢地培養了對C的興趣,感覺自己慢慢地從一個C小白變得越來越懂了,這是我很開心的事情,相信這也是老師為什么要布置這么多作業的原因.
2.我想對琛哥說的是,求序列 1 + 1/2 + 1/3 + ... 的前N項之和跟求序列 1 + 1/3 + 1/5 + ... 的前N項之和差不多,所以我想這兩個題只出一個就行了,再另外出一個有特色的題.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM