一、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的練習。