博客園第二次作業


 

(一)

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、請用表格和折線圖呈現你這幾周的代碼行數和時間、博客字數和時間、涉及的知識點。

 

 


免責聲明!

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



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