(一)
pta第一次作業(統計學生成績)
(1)實驗代碼
#include<stdio.h> int main(void) { int x; int i,m; int a=0,b=0,c=0,d=0,e=0; scanf("%d",&x); for(i=0;i<x;i++){ scanf("%d",&m); if(m>=90){ a++; }else if(m>=80){ b++; }else if(m>=70){ c++; }else if(m>=60){ d++; }else{ e++; } } printf("%d %d %d %d %d\n",a,b,c,d,e); return 0; }
(2)設計思路
第一步:審題是關鍵,首先讀完題目確定我們需要幾個變量分別都用來干什么,有題目可知我們有五個分數段的學生數目要統計,所以先設定五個計數,分別用來記錄各個分數段有多少個人。
第二部:每次輸入一個數據就要進行一次判斷,確定該分數屬於哪個分數段,所以我們要輸入7個成績要進行七次判斷,所以我選擇用for語句的循環體,用i來限制循環的次數,再結合if判斷語句;來確定每次輸入的數據屬於哪個分數段內。最后便可以輸出答案
流程圖
(3)本題調試過程碰到問題及解決辦法
(1)出現問題后把代碼復制到devc++上進行調試,發現該程序的的問題在於題目條件沒有完全滿足。通過設置零點一步一步運行,可以發現當輸入的值為77時首先進行第一個判斷語句然后滿足x>60的條件,d++,實際上77應該是滿足第三個分數段內的,所以該程序沒有考慮到這個問題。
修改:我改變了程序判斷條件的順序,這樣就可以是程序正確運行,if語句從上往下依次判斷,首先判斷最大的90分數段的,以此類推就可以避免之前錯誤的情況。
pta第二次作業(三天打魚兩天曬網)
(1)實驗代碼
#include<stdio.h> int main(){ int N, i; scanf("%d", &N); i=N%5; if(i<=3&&i!=0) printf("Fishing in day %d",N); else printf("Drying in day %d",N); return 0; }
(2)設計思路
審題之后我們發現五個為一個循環,只要對輸入的數字進行求余即可,然后判斷余數為多少,若<3則為打魚,其次則為曬網,並且要注意整除的情況下也為曬網。題目很簡單。思路很清晰。
流程圖
(3)本題調試過程碰到問題及解決辦法
解決方法:出現問題后在devc++上進行反復帶入數字進行檢驗該程序的正確性,然后發現該程序當N能夠被5整除是應該屬於曬網階段,但是該程序求余之后的數字i<=3包括了曬網階段,認為該天為打魚階段。
只要在if判斷語句中加上並且i不等於1.則結果就正確了。
(二)總結和學習進度條
1、總結這幾周所學內容、遇到的問題以及解決方法。
最近幾周老師在課上教的循環也好分支結構也好,首先我覺得理解上面很有困難,在面對一個編程題目的時候無從下手,僅僅是停留在可以按照書上打代碼的階段,不能進行獨立的思考,沒有整體的編程概念。通過mooc上的視頻進行反復了解。聽完實體課,再聽網課,反復進行訓練。顯示書上的習題搞懂之后,再進行適當的改變過程。在網上也能找到初學者可以進行編寫的c語言程序,進行反復練習,最后達到可以基本掌握這些結構和基本的題目解題思路。
2、點評3個同學的本周作業(在作業中給出被點評同學博客的超鏈接!超鏈接!),並邀請3名同學點評你的作業,無點評作業倒扣該題分數。
(1)於海龍作業評價超鏈接 (2)祝傳令作業評價超鏈接(3)唐衛棟作業評價超鏈接
3、請用表格和折線圖呈現你這幾周的代碼行數和時間、博客字數和時間、涉及的知識點。