要求二
題目7-1高速公路超速處罰
1,實驗代碼
#include<stdio.h>
int main()
{
int c,s;
double x;
scanf("%d %d",&c,&s);
x=(double)(c-s)*100/(double)s;
if(x<10)
printf("OK");
else if(x>10&&x<50)
printf("Exceed %.0f%%. Ticket 200",x);
else
printf("Exceed %.0f%%. License Revoked",x);
return 0;
}
2,設計思路
(1)題目算法
第一步:理解題意,定義兩個變量c,s和一個浮點型變量x,因為x為百分數,所以要用double。
第二步:根據題意列出計算公式:超速百分比=(車速-限速)*100/限速。
第三步:用if else語句輸出三種結果。
(2)流程圖
3,本題調試過程遇到問問題及解決方法
(1)錯誤截圖
(2)遇到問題
本題真是傷透了腦筋,剛開始讀完題不知道怎么列計算公式,后來反復讀題問同學知道了,但是沒按照題目要求順序輸出像:先輸出正常行駛,再應處罰款,最后吊銷駕照。導致提交錯誤。(通過本題了解到想要輸出一個%號,就必須用%%,因為c語言中%是個特定的字符將會和他后面的一個字符組成一個輸出形式)
4,PTA提交列表
題目7-2計算油費
1,實驗代碼
#include<stdio.h>
int main()
{
int a,b;
char c;
double y;
scanf("%d %d %c",&a,&b,&c);
if(c=='m')
{
switch(b){
case 90:y=a*6.95*0.95;break;
case 93:y=a*7.44*0.95;break;
case 97:y=a*7.93*0.95;break;
}
printf("%.2f",y);
}
if(c=='e'){
switch(b){
case 90:y=a*6.95*0.97;break;
case 93:y=a*7.44*0.97;break;
case 97:y=a*7.93*0.97;break;
}
printf("%.2f",y);
}
return 0;
}
2,設計思路
(1)題目算法
第一步:首先讀懂題意,有兩種服務類型和三種型號汽油,兩種折扣形式,共有六種情況。
第二步:用switch語句進行討論,用int定義整數a,b,char定義字符c,定義浮點數y。
第三步:用if區分兩種服務類型,每種服務類型的三種油號類型用switch語句輸出。
(2)流程圖
3,本題調試過程遇到問題及解決方法
(1)錯誤截圖
(2)遇到問題
剛開始接觸switch語句還有點不熟練,總出現錯誤,在服務類型為協助服務類型時輸入的三種型號被我誤打成為一種"90"號型號,所以導致提交錯誤。
4,PTA提交列表
題目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=a;
a=c;
c=t;
}
if(b>c){
t=b;
b=c;
c=t;
}
printf("%d->%d->%d",a,b,c);
return 0;
}
2,設計思路
(1)題目算法
第一步:首先理解題意,本題是比較三個數的大小,需要再找一個變量t做替換。
第二步:用int定義a,b,c,t。
第三步:比較a,b,c的大小,當a>b時,讓t=a,a=b,b=t實現大小替換,依次進行替換。
第四步:按照題目要求用->連接,按照由小到大的順序輸出。
(2)流程圖
3,遇到問題及解決方法
(1)錯誤截圖
(2)遇到問題
本題是老師課上講過的題,但是仍就出錯了,將t賦值給a了,可是t並沒有值,導致錯誤,應該是t=a。
4,PTA提交列表
題目7-4兩個數的簡單計算器
1,實驗代碼
#include <stdio.h>
int main()
{
int number1,number2;
char op;
scanf("%d %c %d",&number1,&op,&number2);
switch(op){
case'+':
printf("%d",number1+number2);break;
case'-':
printf("%d",number1-number2);break;
case'*':
printf("%d",number1*number2);break;
case'/':
printf("%d",number1/number2);break;
case'%':
printf("%d",number1%number2);break;
default:
printf("ERROR");
}
return 0;
}
2,設計思路
(1)題目算法
第一步:這道題用到switch語句,要求計算兩個數的加減乘除和求余五種情況,還有在輸入非法符號時輸出“ERROR”共有六種情況。
第二步:因為兩個整數,所以用int定義函數number1,number2。定義一個運算符號用char定義函數op。
第三步:輸出兩個數的加減乘除求余運算方法和非法符號的結果。
(2)流程圖
3,遇到問題及解決方法
(1)錯誤截圖
(2)遇到問題
由於看到題目要求在除法和求余時的分母非零,所以就在switch語句輸出時定義了number!=0結果導致錯誤,后來問同學知道只需在運行時輸入非零的數就好。
4,PTA提交列表
要求三
git地址
https://git.coding.net/MAYUXIN/mayuxin.git
截圖:
(1)學習內容及收獲:
本周學習到了一個新的 switch 語句,switch和case還有break共同組建成一種分支結構語句,還有對應流程圖的畫法。
當使用 if 的嵌套語句時要進行縮進。
while與do while的循環解構和對應的流程圖畫法。
比較幾個數大小時,要交換兩個變量的值,並再找一個變量做替換。
(2)內容難點及問題:
感覺剛開始接觸switch語句,還有點不好理解。比較大小時,交換兩個變量的值還有點蒙,但是經過問同學和自己琢磨現在好點了。
(3)上課形式及建議:
對於已經上課好幾周的我習慣了目前的上課形式,建議老師在講完新的內容時能多給我們一點寫程序的時間,上課的速度對我來說有點快,但是可能是進度的需要,希望能多說一下較難的知識點,只是一個建議而已。
要求五
(1)被點評同學作業的鏈接
孫娜:http://www.cnblogs.com/sun-na-/p/7788913.html
孫佳鈺:http://www.cnblogs.com/woshisun/p/7795878.html
孫美玲:http://www.cnblogs.com/sunmeiling/p/7795932.html
(2)表格及折線圖