要求二
一.PTA作業
(一)題目7-1 高速公路超速處罰
1.實驗代碼
#include <stdio.h> int main() { int x,y; double z; scanf("%d %d",&x,&y); z=(x-y)*100.0/y; if (z<10) printf("OK"); else if (z<50) printf("Exceed %.0f%%. Ticket 200",z); else printf("Exceed %.0f%%. License Revoked",z); return 0; }
2.設計思路
(1)題目算法
第一步:查看輸入格式以及輸出格式。
第二步:理解題中(超出本車道限速的10%處200元罰款,若超出50%則吊銷駕駛證)的意思。
第三步:列出公式(超速百分比*100=(車速-限速)*100/車速)。
第四步:利用if else 語句表達出結果。
if (超速百分比*100<10)則輸出Ok;
else if (超速百分比*100<50)則輸出Exceed z%.Ticket 200;
else 則輸出Exceed z%.Licence Revoked。
(2)流程圖
3.本題調試過程遇到的問題及解決辦法
錯誤截圖
遇到的問題
不知道怎樣才能把帶有百分號的數輸出程序。
解決方法
經過上網翻找資料有了一下的總結,
要求一個數的百分比,可以先把被除數乘以100,這樣得出的結果就是百分比前面的整數部分,
最后printf("%.0f%%",a)。
4 PTA提交列表
說明:出錯點在於不知怎樣輸出%類型的數。
(二)7-2計算油費
1.實驗代碼
#include <stdio.h> int main() { double a,w; int b; char c; scanf("%lf%d %c",&a,&b,&c); if (c == 'm'){ switch(b){ case 90:w = a * 6.95 * 0.95;break; case 93:w = a * 7.44 * 0.95;break; case 97:w = a * 7.93 * 0.95;break; } printf("%.2f",w); } else if (c == 'e'){ switch(b){ case 90:w = a * 6.95 * 0.97;break; case 93:w = a * 7.44 * 0.97;break; case 97:w = a * 7.93 * 0.97;break; } printf("%.2f",w); } return 0; }
2.設計思路
(1)題目算法
第一步:審清題意,找出有關數據變量(加油量a,汽油品種b,以及服務類型c)。
第二步:輸入應用公式(應付金額=加油量*(1-折扣百分比)*對應品種價格)。
第三步:因為題意中有輸入字符的形式,所以利用swich語法計算本題。
例如 if (c==e)
swich(b){
case 90:w=a*0.95*6.95;break;
case 93:w=a*0.95*7.44:break;
case 97:w=a*0.95*7.93;break;
第四步:找好對應條件中對應公式輸出w。
(2)流程圖
3 本體調試過程中遇到的問題及解決方法
錯誤截圖
遇到問題
提示中一直給出c=e,b=90時出現問題。
解決方法
一開始以為是程序錯誤后來把float換成double時就成功了。
查詢截圖
4.本題PTA提交列表
(三)7-3比較大小
1實驗代碼
#include <stdio.h> int main() { int a,b,c,d; scanf("%d %d %d",&a,&b,&c); if (a>b){ d=a; a=b; b=d;} if (a>c){ d=a; a=c; c=d;} if (b>c){ d=b; b=c; c=d;} printf("%d->%d->%d",a,b,c); return 0; }
2設計思路
(1)題目解法
第一步:運用if else 語句。
第二步:共有三個變量湊出三隊兩兩比較。
第三步:增加一個變量作為替換。
第四步:輸出程序。
(2)流程圖
3.遇到的問題及解決方法
因本題和老師上課所講內容相同所以無錯誤。
4.本題PTA提交列表
(四)7-4兩個數的簡單計算器
1.實驗代碼
#include <stdio.h> int main() { int a,b; char c; scanf("%d %c %d",&a,&c,&b); switch (c) { case '+':printf("%d",a+b);break; case '-':printf("%d",a-b);break; case '*':printf("%d",a*b);break; case '/':printf("%d",a/b);break; case '%':printf("%d",a%b);break; default :printf("ERROR\n");break; } return 0; }
2.設計思路
(1)題目算法
第一步:找出變量的類型(‘char’為符號類型,‘int’為整形)。
第二步:運用switch語法鏈接。
如果輸入(+ - * / % 就進行相應計算)否則輸出ERROR。
(2)流程圖
3 遇到的問題及解決方法
錯誤框圖
遇到的問題:編譯正確,但是打不出真負數。
解決方法:去掉(c=getcharr())就可以打成負數。
4.本題Pta提交列表
要求三
git地址
https://git.coding.net/hezongyan321/text.git
截圖
要求四
本周學習內容:1復習了if-else嵌套語句。
2字符型數據(用char定義字符變量)。
3switch case結構可以處理多支選擇問題。
4交換i兩個變量的值(輸入3個數,按重小到大排列)。
本周難點在於交換兩個變量的值不過經過我的反復琢磨弄懂了。
給老師的建議:我覺得老師布置的任務量有點大,看起來其實是一周的作業,其實每天都在寫代碼中,幾乎是一有空就要面對電腦,如果真要給建議的話就是希望老師可以少留一些作業。
要求五
表格
折線圖
我評論的博客
王佳樂:http://www.cnblogs.com/wjl1124/p/7783547.html