第六周作業


一、PTA作業

題目7-1 高速公路超速處罰

1.實驗代碼

#include <stdio.h>
int main()
{
    int m,n;
    double a;
    scanf("%d %d",&m,&n);
    a=(double)(m-n)*100/(double)n;
    if(a<10||m<n)
        printf("OK");
    else if(a<50)
        printf("Exceed %.0f%%. Ticket 200",a);
    else
        printf("Exceed %.0f%%. License Revoked",a);
    return 0;
}

2 設計思路

(1)文字描述

第一步:理解題意 情況分為三類:第一類為正常情況下車速小於10%*限速;第二類為超速10%~50%之間罰款200元;第三類為超速50%或50%以上吊銷駕駛證
第二步:打出框架  並將三類情況分別列出

第三步:編譯運行

(2)流程圖

 

3.本題調試過程碰到問題及解決辦法

錯誤提示的截圖

問題及解決辦法:第一個運行結果和第三個運行結果都是對的  試了很多次第二次運行結果都是錯誤的,通過問同學得知if中是不可以參與運算的,而且審題有誤,所以在重新審題后運行正確。 

4.本題PTA提交列表

錯誤提示解釋說明:我理解的和題意不符,所以並不正確。提交時顯示為全部錯誤,更正后沒有問題。

題目7-2  計算郵費

1.實驗代碼

#include <stdio.h>
int main()
{
    int a,b;
    char c;
    double m;
     scanf("%d %d %c",&a,&b,&c);
    switch(b)
    {
        case 90: 
            m=a*6.95;break;
        case 93:
            m=a*7.44;break;
        case 97:
            m=a*7.93;break;
        default:
            break;
    }
    if(c=='m')
        m=m*0.95;
    if(c=='e')
        m=m*0.97;
    printf("%.2f\n",m);
    return 0;
}

2 設計思路

1)文字描述

第一步:理解題意 三種汽油 兩種服務 兩種折扣  
第二步:打出框架  運用switch進行分類討論 任選一種汽油並任一服務和折扣 注意運算結果保存兩位小數

第三步:編譯運行

(2)流程圖

3.本題調試過程碰到問題及解決辦法

錯誤提示的截圖

問題及解決辦法:在本題中  首先是定義變量類型時a應該為整形,而我定義為了double型,並且寫double型時后面寫成了f%,其實應該為lf%,這個是忽略了,審題后發現錯誤。

4.本題PTA提交列表

在devc++中是正確的,而在pta中是錯誤的原因是輸出是的要求錯誤,多了一個money。在提交多次后發現了錯誤。

題目7-3  比較大小

1.實驗代碼

#include <stdio.h>
int main(){
    int a,b,c,t;
    scanf ("%d %d %d",&a,&b,&c);
    if(a>b){
      t=a;
      a=b;
      b=t;}
    if(a>c){
      t=c;
      c=a;
      a=t;}
    if(b>c){
      t=c;
      c=b;
      b=t;}
    printf("%d->%d->%d",a,b,c);
    return 0;
}

2 設計思路

1)文字描述

第一步:看到比較大小想到替換  三個數比較大小  要用第四個變量替換
第二步:定義四個變量進行替換 分成三部分 一個一個比較

第三步:編譯運行

(2)流程圖

3.本題調試過程碰到問題及解決辦法

錯誤提示的截圖

問題及解決辦法:由於這道題在課堂上做過的  按理來說不應該出現錯誤,但是太過馬虎 不小心在if后忘記了‘{}’而且應為a>b,a>c,b>c,把‘>’和‘<’弄反了。

4.本題PTA提交列表

在devc++中改過后並沒有錯誤,對於老師說提交列表只有一次的扣分  我也不是很理解!尤其是這種課堂上做過的題。

題目7-4   兩個數的簡單計算器

1.實驗代碼

#include <stdio.h>
int main (){
    int a,b;
    char op;
    scanf("%d %c %d",&a,&op,&b);
    switch(op)
    {
    case '+':
        printf("%d",a+b);break;
    case '-':
        printf("%d",a-b);break;
    case '*':
        printf("%d",a*b);break;
    case '/':
        if(b!=0)
          printf("%d",a/b);break;
    case '%':
        if(b!=0)
          printf("%d",a%b);break;
    default:
    printf("ERROR");
    }
    return 0;
} 

2 設計思路

1)文字描述

第一步:理解題意 需要運算兩個數組的多種不同運算 分情況討論 分出+,-,*,/和%。
第二步:用switch框架來進行分類。

第三步:編譯運行

(2)流程圖

 

3.本題調試過程碰到問題及解決辦法

錯誤提示的截圖

 

問題及解決辦法:一直是部分正確,無論怎么找,最后在老師的幫助下發現c%寫成了C%,但是在c++中沒有報錯。

4.本題PTA提交列表

由於那個c%的錯誤讓我試了很多遍  也改了很多次,也有加了條件后改的。

要求三

git地址:

截圖

要求四

個人總結
(1)本周你學習了哪些內容?收獲了什么?

答;本周復習了 if else  講了流程圖的注意事項  學習了switch結構,收獲了一種新的結構,更開拓了打代碼的視野。
(2)本周所學內容中你覺得哪些是難點?有哪些知識點還不明白? 

答:我認為流程圖的畫法是一個難點,不明白的知識點是switch的流程圖畫不明白。
(3)你對目前老師的上課形式有什么意見或建議?

希望對寫作業的時間做出調整,有同學已經提出過。但這周是有些趕。大一畢竟要參加各種活動比如這個星期的紅歌比賽,個人覺得這周作業量較大。

要求五

互評和學習進度
1、點評3個同學的本周作業:

何宗彥:

 透光玻璃:

 魏鵬:

 

2、折線圖

表格

  代碼行數 時間 博客字數 時間
11.05 25 45min 200 45min
11.06 60 120min 400 90min
11.07 34 30min 200 90min
         

 

 

 

 

涉及的知識點:if-else的嵌套結構;

                        switch的練習。


免責聲明!

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



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