一、
題目7-1 計算分段函數[1]
1、實驗代碼
int main()
{
float x=0,result=0;
scanf("%f",&x);
if(x==0)result=0;
else result=1.0/x;
printf("f(%.1f) = %.1f",x,result);
return 0;
}
2、(1)設計思路:第一步:判斷應用浮點數,定義兩個浮點數x,y,其中y= result;
第二步:輸入x;
第三步:運用if else型函數,判斷x是否等於0,等於0輸出y=0.0,;不等於0輸出y=1/x。
3、流程圖:
4、本題中出現的問題:
(1)問題:1、直接定義“y=f(x)”,沒有按照題目所要求的輸出按“f(x) = result”的格式輸出
2、定義x為浮點數,“scanf”中將應該輸入“%f”打成“%d”
(2)解決:1、將”f(x)”改成題目要求的輸出格式“f(x) = result”
2、將“%d”改成“%f” (這個錯誤出現了很多次)
截圖:
題目7-2 A除以B
1、實驗代碼
int main()
{
int A=0,B=0;
float C=0;
scanf("%d %d",&A,&B);
if(-100>A||A>100||-100>B||B>100)printf("the input is error");
else if(0<B){C=(float)A/B;
printf("%d/%d=%.2f",A,B,C);}
else if(B==0)printf("%d/%d=Error",A,B);
else {C=(float)A/B;
printf("%d/(%d)=%.2f",A,B,C);}
return 0;
}
2、(1)設計思路:第一步:判斷是浮點數形式,定義兩個整數A,B和一個浮點數C;
第二步:輸入A,B;
第三步:運用if else型函數,判斷A,B的正負,確定浮點數C的值,如果B是正數,則輸出“C=A/B”;如果B是負數,則輸出"C=A/(B)";如果B為零,則輸出的C應為Error。C保留小數點后2位。
3、流程圖:
4、本題出現的問題:
(1)問題:else if 后面的“B=0”少打了一個“=”
(2)解決:加上一個“=”
截圖:
題目7-6 階梯電價
1、實驗代碼
int main()
{
float A,B;
scanf("%f",&A);
if(A<=50&&A>0){
B=A*0.53;
printf("cost = %.2f",B);}
else if(A>50){
B=(A-50)*(0.53+0.05)+50*0.53;
printf("cost = %.2f",B);}
else
printf("Invalid Value!");
return 0;
}
2、(1)設計思路:第一步:判斷運用浮點數,定義兩個浮點數A,B,A為用電數,B為電費;
第二步:輸入A;
第三步:運用if else型函數,判斷A的取值范圍,如果0<A<=50,輸出B=A0.53,如果A>50,輸出B=(A-50)(0.53+0.05)+50*0.53,如果A=0,輸出Invalid Value!,其中B保留兩位小數。
3、流程圖:
4、本題出現的問題:
(1)問題:限制A的范圍使用的不規范,輸出的"cost = %.2f"再DVC++中沒有出現問題,提交PTA時出現了錯誤
(2)解決:將“0<A<=50”改為“A<=50&&A>0”,輸出的“cost=%.2f”改為“cost = %.2f”。
截圖:
題目7-7 出租車計價
1、實驗代碼
int main()
{
int C;
float A,B;
scanf("%f %d",&A,&C);
if(A<=3&&C<5)
B=10;
else if(A<=3&&C>=5)
B=10+C/5*2;
else if(A>3&&A<=10&&C<5)
B=(A-3)*2+10;
else if(A>3&&A<=10&&C>=5)
B=(A-3)*2+10+C/5*2;
else if(A>10&&C<5)
B=24+(A-10)*3;
else if(A>10&&C>=5)
B=24+(A-10)*3+C/5*2;
printf("%.0f",B);
return 0;
}
2、(1)設計思路:第一步:主要運用浮點型,定義一個整數C,兩個浮點數A,B,A是公里數,C是乘車時間,B是乘車費用;
第二步:輸入A,C;
第三步:運用if else型函數,判斷乘車公里數A與乘車時間C,分別輸出B=10,B=10+C/52,B=(A-3)2+10+C/52,B=24+(A-10)3,B=24+(A-10)3+C/52。
3、流程圖:
4、本題出現的問題:
(1)問題:當輸入A,B區間在(A>10,C>=5),輸出的B是四舍五入的數值,但是不是整數形式。
(2)解決:忘記在輸出的B的printf中限制輸出的位數,即printf(“%.0f”,B)限制輸出的位數
截圖:
二、上傳成功后coding.net項目截圖和git地址,PTA提交列表截圖:
https://coding.net/u/c289716425/p/123/git
三、點名評論的同學博客鏈接
(1)http://www.cnblogs.com/liuzehua123/p/7732027.html
(2)http://www.cnblogs.com/mayuxin/p/7735130.html
(3)http://www.cnblogs.com/hezongyan/p/7726382.html
四、本周所學內容、遇到的問題以及解決方法:
本周學習了define和一些新的符號如:++,--,
遇到的問題:經常忘記輸入scanf括號里的&,在表示"x=x"時經常忘記用“==”,結尾的輸出浮點數經常忘記限制保留小數位數,
解決辦法:需要繼續練習編寫代碼和記住結構
五、學習表格與折線圖
學習表格:
折線圖: