第六周作業


要求二

一.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

鄭鑫:http://www.cnblogs.com/boke2017boke/p/7788452.html

 魏鵬:http://www.cnblogs.com/WeiPeng-Wuban/p/7792497.html


免責聲明!

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



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