C語言I博客作業08


一、本周教學內容&目標

第4章 循環結構 4.1-4.2 熟悉使用while和do-while結構解決問題。

二、本周作業頭

這個作業屬於那個課程 C語言程序設計II
這個作業要求在哪里 <C語言I作業08>
我在這個課程的目標是 <學會循環結構,了解並熟悉while和do-while結構解決問題>
這個作業在那個具體方面幫助我實現目標 <能讓我更加熟系while和do-while結構>
參考文獻 <<集美大學林麗老師>>

三、本周作業

1.PTA實驗作業
2.代碼互評
3.學習總結

四、作業格式

1.PTA實驗作業(20分/題)

請再此處列出自己的排名圖片

從PTA題目集中選出2個你最滿意的題目完成以下內容,選擇題目難度越大,分值越高,每題20分(每項5分),內容要求如下:

1.1 題目名1 (7-2 韓信點兵 (10 分))

題目內容描述:

在中國數學史上,廣泛流傳着一個“韓信點兵”的故事:韓信是漢高祖劉邦手下的大將,他英勇善戰,智謀超群,為漢朝建立了卓越的功勞。據說韓信的數學水平也非常高超,他在點兵的時候,為了知道有多少兵,同時又能保住軍事機密,便讓士兵排隊報數:

按從1至5報數,記下最末一個士兵報的數為1;
再按從1至6報數,記下最末一個士兵報的數為5;
再按從1至7報數,記下最末一個士兵報的數為4;
最后按從1至11報數,最末一個士兵報的數為10;
請編寫程序計算韓信至少有多少兵。

輸入格式:
本題無輸入

輸出格式:
輸出韓信至少擁有的士兵人數。

1.1.1數據處理

介紹實現本題過程中,你的數據表達、數據處理是怎么做的。注意:請務必按照以下方式書寫。

數據表達:定義了一個整型變量i用於控制循環變量
數據處理:
表達式:i%51&&i%65&&i%74&&i%1110
結構式:用了for循環語句以及使用break跳出循環

偽代碼:

include<stdio.h>

int main()
{
int i=0; //定義變量i,i用來表示韓信的兵
while(7)
for (i = 1;; i++) //使用for循環結構
{
if ((i % 5 == 1) && (i % 6 == 5) && (i % 7 == 4) && (i % 11 == 10)) //根據題意寫出每次報數的數據
{
printf("%d\n", i);

          return 0;
    }
}

}

1.1.2實驗代碼截圖

貼圖展示代碼,不要復制。請給出名字標識。

1.1.3 造測試數據

輸出你的程序面向各種測試數據結果,除了題目給出的測試數據,可以自己再造其他臨界數據,越多越好,並加上必要說明

輸入數據 輸出數據 說明
7本題無輸入 本題無輸入 2111人

1.1.4 PTA提交列表及說明

根據PTA提交列表,簡要描述調試程序碰到的問題及解決辦法

答案錯誤:在(i % 5 == 1) && (i % 6 == 5) && (i % 7 == 4) && (i % 11 == 10))加上了;
本題的難點就在於i%51&&i%65&&i%74&&i%1110 這個條件,在這上面多花一點功夫就好。

1.2 題目2(7-5 爬動的蠕蟲 (15 分))

題目內容描述

一條蠕蟲長1寸,在一口深為N寸的井的底部。已知蠕蟲每1分鍾可以向上爬U寸,但必須休息1分鍾才能接着往上爬。在休息的過程中,蠕蟲又下滑了D寸。就這樣,上爬和下滑重復進行。請問,蠕蟲需要多長時間才能爬出井?

這里要求不足1分鍾按1分鍾計,並且假定只要在某次上爬過程中蠕蟲的頭部到達了井的頂部,那么蠕蟲就完成任務了。初始時,蠕蟲是趴在井底的(即高度為0)。

輸入格式:
輸入在一行中順序給出3個正整數N、U、D,其中D<U,N不超過100。

輸出格式:
在一行中輸出蠕蟲爬出井的時間,以分鍾為單位。

輸入樣例:
12 3 1
輸出樣例:
11

1.2.1 數據處理

介紹實現本題過程中,你的數據表達、數據處理是怎么做的。注意:請務必按照以下方式書寫。

數據表達:使用了N,U,D,L,time.5個變量,N代表井的深度,U和D分別代表蠕蟲一分鍾能向上爬與向下滑了多少寸,L表示蠕蟲爬行的距離,time表示爬行所用的時間
數據處理:
數據類型:year,mouth, day, number都為整型。
表達式:while(L<N){
time++;
L=L+U;
流程結構:while結構。

偽代碼

include <stdio.h>

int main()
{
int N,U,D,L; //n為井的深度,u為蠕蟲一分鍾爬的距離,D為休息時下滑的距離,time為爬出井的總時間,L為蠕蟲爬行的距離。
scanf("%d %d %d",&N,&U,&D);
int time;
time=L=0;
while(L<N){ //當爬行的距離小於井的深度時
time++; //time=time+1
L=L+U; //蠕蟲爬行的距離等於之前的加上所爬的距離
if(L>=N) //當爬行的距離大於等於井的深度時
break; //跳出語句
L=L-D; //計算爬蟲總距離減去下滑的距離
time++; //加上爬蟲休息的時間
}
printf("%d",time);
return 0;
}

1.2.2 實驗代碼截圖

1.2.3 造測試數據

輸入數據 輸出數據 說明
15 4 3 23 如果井深為15寸,蠕蟲每分鍾爬行4寸,休息時下降3寸,則需要23分鍾才能爬上去
10 5 2 5 如果井深為10寸,蠕蟲每分鍾爬行5寸,休息時下降2寸,則需要5分鍾才能爬上去
9 5 4 9 如果井深為9寸,蠕蟲每分鍾爬行5寸,休息時下降4寸,則需要9分鍾才能爬上去
15 5 2 9 如果井深為15寸,蠕蟲每分鍾爬行5寸,休息時下降2寸,則需要9分鍾才能爬上去

1.2.4 PTA提交列表及說明

根據PTA提交列表,簡要描述調試程序碰到的問題及解決辦法

1.編譯錯誤:在第5行的函數定義上多加了一個;導致語句停止。

2.代碼互評(5分)

找2份同學代碼,和自己代碼比較,建議互評代碼盡量找代碼風格差異較大。

第一張 (7-2 韓信點兵)

同學代碼截圖 <<[C語言I作業08 戳你臉 (https://www.cnblogs.com/lky-29/p/11858200.html)>>

自己代碼截圖

答:第一個同學的代碼和我的有很多不同
1.我用的代碼定義了變量i,運用while語句,而他則定義n運用for循環語句。

第二張 (7-13 整數的分類處理)

同學代碼截圖

自己代碼截圖

答:第二個同學
1.同學的代碼用的是for循環,而我的代碼用的是while語句以及if-else語句

3.學習總結(15分)

$3.1 學習進度條(5分)

|周/日期 |這周所花的時間| |代碼行 |學到的知識點簡介 |目前比較迷惑的問題|
|-|-|-|-|-|
|第六周| 8小時 |300行 |常用的數學函數,if-else語句,for語句,自定義函數 |不會用自定義函數|
|第七周 |7小時 |400行 |二分支結構和用char輸入字符 |對於字符型的代碼有點看不懂|
|第八周| 10小時 |420行 |多分支結構,switch語句 |switch語句用得有點混亂|
|第九周 |13小時 |450行 |自定義函數的用法,怎樣用一個算法來運算多個式子 |if語句的嵌套不明白是怎樣分支的|
|第十周| 18小時 |500行 |多分支結構、字符型數據類型和邏輯運算符 |目前不太熟練並且字符型還沒熟悉|
|第十一周|12小時|600行|熟悉多分支結構switch語句的使用|switch后的表達式是否有要求|
|第十二周 |8 |205 |do-while語句和while,for語句的區別 |continue不知道怎么去用|

3.2 累積代碼行和博客字數(5分)

時間 博客字數 代碼行數
第六周 585 300
第七周 1366 400
第八周 1624 420
第九周 1583 400
第九周 1891 500
第十周 1921 550
第十一周 2377 600
第十二周 1656 620

3.3 學習內容總結和感悟(5分)

3.3.1 學習內容總結

3.3.2 學習體會

請回顧自己的本周的學習過程,描述學習感受,也可以提出你不理解的地方、對教師教學建議等。如果你有新的想法或者新的方法,請及時記錄下來。

1.本周我們學習了do-whule語句,並且把while語句,do-while語句和for語句的區別弄清楚了。
2.for語句和do-while語句都是先判斷符不符合條件再執行循環體,一般在知道循環次數的情況下使用for語句,不知道循環次數則使用while語句。
3.do-while語句是不管怎樣都會先執行一次循環體,再判斷是否符合條件,再執行循環體
4.百度是個好東西,尤其是對於初學者來說!
5.希望自己多學一點,走在老師前面


免責聲明!

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



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