第六周作業


要求一:

已完成PTA第六周作業所有題目

要求二:

題目7-1 高速公路超速處罰
1.實驗代碼

#include <stdio.h>
int main()
{
  int c,x;
  scanf("%d %d",&c,&x);
  if(c<x*1.1)
  {
    printf("OK\n");
  }
  else if(c>=1.1*x&&c<1.5*x)
  {
    float d=100*(c-x)/(float)x;
	printf("Exceed %.0f%%. Ticket 200\n",d);
  }
  else
  {
	float d=100*(c-x)/(float)x;
	printf("Exceed %.0f%%. License Revoked\n",d);
  }
  return 0;
}

2.設計思路
(1)算法
第一步:設置車速、限速的值c、x為整形變量;
第二步:輸入c、x的值;
第三步:設置超出了限速百分之多少的值d為float形
第四步:寫if循環語句
如果沒超出本車道限速的10%,則輸出OK,如果超出本車道限速的10%且小於50%,則輸出"Exceed d% Ticket 200“,如果超出本車道限速的50%及以上,則輸出“Exceed d%. License Revoked”。

注意:由於d為浮點形,在計算d的時候它的運算所用到的量也要換為浮點形的。
(2)流程圖

3.本題調試過程碰到問題及解決辦法
因為本題以前做過,所以在這次調試中並未遇到問題。
4.本題PTA提交列表

題目7-2 計算油費
1.實驗代碼

#include <stdio.h>
int main()
{
  int a,b;
  char c;
  double d;
  scanf("%d %d %c",&a,&b,&c);
  if(b==97)
  {
    if(c=='m')
    {
      d=(7.93*a)*0.95*1.0f;
    }
    else
    {
      d=(7.93*a)*0.97*1.0f;
    }
  }
  else if(b==93)
  {
    if(c=='m')
    {
      d=(7.44*a)*0.95*1.0f;
    }
    else
    {
      d=(7.44*a)*0.97*1.0f;
    }
  }
  else
  {
    if(c=='m')
    {
      d=(6.95*a)*0.95*1.0f;
    }
    else
    {
      d=(6.95*a)*0.97*1.0f;
    }
  }
  printf("%.2lf",d);
  return 0;
}

2.設計思路
(1)算法
第一步:設置加油量a,品種b為整形變量,服務類型c為字符變量,應付款額d為double形變量;
第二步:輸入a,b,c的值(其中c的值為字符);
第三步:寫if循環語句
如果97號汽油的時候,m服務等級時,應付款額為7.93a0.95,e服務等級時,應付款額d為7.93a0.97
如果93號汽油的時候,m服務等級時,應付款額為7.44a0.95,e服務等級時,應付款額d為7.44a0.97
如果90號汽油的時候,m服務等級時,應付款額為6.95a0.95,e服務等級時,應付款額d為6.95a0.97;
第四步:輸出應付款額d的值。
注意:本題涉及到字符變量,在輸入字符的時候要加‘單引號’。
(2)流程圖

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

由圖得,本題是答案錯誤。
(2)解決辦法:向老師詢問得知,把float改為double即可。(因為對於本題float沒有double精准,而且還有一個學長(一班的助教)建議我們盡量用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&&b>=c)
  {
    d=a,a=c,c=d;
  }
  else if(b>=a&&a>=c)
  {
  d=a,a=c,c=b,b=d;	
  }
  else if(a>=c&&c>=b)
  {
  d=a,a=b,b=c,c=d;
  }
  else if(b>=c&&c>=a)
  {
  	d=b,b=c,c=d;
  }
  else if(c>=a&&a>=b)
  {
  	d=a,a=b,b=d;
  }
  else 
  {
  	a=a,b=b,c=c;
  }
  
  printf("%d->%d->%d",a,b,c);
return 0;
}

2.設計思路
(1)算法
第一步:設置a,b,c,d四個數為整形變量;
第二步:輸入a,b,c;
第三步:寫if語句
我的思路:本題為比較大小,那我就默認為a<b<c,然后如果真實的數值與默認的不相符,那就用老師講的水杯法(就是a,b兩杯水要交換,需要再找一個杯,然后在相互交換)進行交換;
第四步:輸出結果。
(2)流程圖

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

從題目來看,我是部分正確。
(2)解決辦法:我又仔細的看了我的代碼,發現我在賦值的時候(給讓a,b,c的值從小到大)賦值錯了,改正即可。
4.本題PTA提交列表

題目7-4 兩個數的簡單計算器 (必須使用switch結構實現)
1.實驗代碼

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

2.設計思路
(1)算法
第一步:設置a,b,d為整形變量,c為字符變量;
第二步:寫switch語句
確定c為那個可以變化的量,然后,當c取各種不同符號的時候,寫應有運算步驟,如果題目給的字符寫完了,就寫defaul;
第三步:輸出d。
注意:字符要用’單引號‘
(2)流程圖

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

由圖得,本題為編譯錯誤。
(2))解決辦法:
編譯錯誤就是編譯的不正確,因此看看字母大小寫,有無括號,中英文什么的有沒有錯誤,最后發現落了一個括號,改正即可。
4.本題PTA提交列表

要求三:

(1)Git地址:https://git.coding.net/jsjyuyaosong/usth--work.c.git
(2)上傳截圖



要求四:

個人總結

(1)本周你學習了哪些內容?收獲了什么?
答:我學習了switch語句,此語句也是進行選擇判斷的,但有時比if方便。
(2)本周所學內容中你覺得哪些是難點?有哪些知識點還不明白?
答:我覺得switch這個新學的語句就是重點,對於知識點的掌握還不太熟練,具體在框架不是很熟,其它的都好。
(3)你對目前老師的上課形式有什么意見或建議?
答:我認為老師講的形式很好,並無意見。

要求五:

互評和學習進度

1、作業互評
(1)金海東:http://www.cnblogs.com/jhd1127/p/7811138.html
(2)李銳:http://www.cnblogs.com/572453251asd/p/7811205.html
(3)王姝雯:http://www.cnblogs.com/phsudie/p/7801346.html
2、學習進度


免責聲明!

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



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