要求一:完成PTA的題目
截圖證明
要求二:4道題目
題目7-1 計算分段函數【1】
a.實驗代碼
#include <stdio.h>
int main()
{
float a,b;
scanf("%f",&a);
if(a!=0)
{
b=1/a;
printf("f(%.1f) = %.1f",a,b);
}
else
printf("f(0.0) = 0.0");
return 0;
}
b.設計思路
(1)描述算法
第一步:設置兩個數a,b,為浮點數,其中a相當於函數里的x,b相當於函數里的y;
第二步:輸入a;
第三步:寫if語句,b=1/a的輸出f(a) = b,否則輸出f(0.0)=0.0;
第四步:結束。
注意:最后保留小數點后一位,%.1f,而不是%f
(2)流程圖
c.本題調試過程碰到問題及解決辦法
(1)錯誤截圖
(2)問題及解決方法
編譯沒問題,但是答案錯誤,后經發現,不等於在if語句里是!=,而不是=!,改正后即可。
題目7-2 A除以B
a.實驗代碼
#include <stdio.h>
int main()
{
int A,B;
float C;
scanf("%d %d",&A,&B);
C=1.0f*A/B;
if(B>0)
{
printf("%d/%d=%.2f",A,B,C);
}
else if(B<0)
{
printf("%d/(%d)=%.2f",A,B,C);
}
else
{
printf("%d/%d=Error",A,B);
}
return 0;
}
b.設計思路
(1)描述算法
第一步:確立A、B為整型數,A除以B的得數C為浮點型數;
第二步:輸入A、B;
第三步:寫if語句,如果B>0,則輸出A/B=C,如果B<0,則輸出A/(B)=C,否則輸出A/B=Error
第四步:結束。
注意:最后保留小數點后2位,%.2f,而不是%f
(2)流程圖
c.本題調試過程碰到問題及解決辦法
(1)錯誤截圖
(2)問題及解決方法
經過檢查,發現忘記加"&"符號了,加上就正確了。
題目7-6 階梯電價
a.實驗代碼
#include <stdio.h>
int main()
{
float a;
scanf("%f",&a);
if(a<=50&&a>0)
{
printf("cost = %.2f",0.53*a);
}
else if(a>50)
{
printf("cost = %.2f",26.5+(a-50)*0.58);
}
else
{
printf("Invalid Value!");
}
return 0;
}
b.設計思路
(1)描述算法
第一步:設置某用戶的月用電量a為浮點型;
第二步:輸入a;
第三步:寫if語句,如果a>0且a<=50,則輸出花費的錢cost的值為0.53乘以a,如果a>50,則輸出花費的錢cost的值為26.5+(a-50)*0.58,否則輸出Invalid Value!
第四步:結束。
注意:小數點后保留兩位,寫%.2f;在if語句里&&表示“和“,輸出格式要和題目保持一致,最好用的辦法就是復制粘貼
(2)流程圖
c.本題調試過程碰到問題及解決辦法
本題未遇見任何問題
題目7-7 出租車計價
a.實驗代碼
#include <stdio.h>
int main()
{
float a,d,e,f;
int b,c;
scanf("%f %d",&a,&b);
c=b/5;
d=10+c*2;
e=10+2*(a-3)*1.0f+c*2;
f=24+(a-10)*3*1.0f+c*2;
if(a<=3)
{
printf("%.0f",d);
}
else if(a>3&&a<=10)
{
printf("%.0f",e);
}
else
{
printf("%.0f",f);
}
return 0;
}
b.設計思路
(1)描述算法
第一步:設置行駛里程a,3公里內所花的錢數d,10公里內所花的錢數e,總共花的錢數f為浮點型,等待時間b,每5min2元計時的個數c為整型;
第二步:輸入a,b;
第三步:寫if語句,如果a<=3,輸出d的值,如果a>3且a<=10,輸出e的值,否則輸出f的值;
第四步:結束。
注意:此題要四舍五入,即在輸出的時候寫上%.0f
另外,本題對我來說最大的難點是讀懂題目。題目翻譯一下,計價是在3公里內(包括三公里)都收10元,超出3公里以后,超出3公里,小於10公里的部分每公里加2元,大於10公里的部分每公里加3元,並且要看此人乘車用了多長時間,每5min收2元,不足5min的不收錢,比如乘車用了9min,那么就收2元,因為9min=5min+4min,4min不足5min,則只收2元。
(2)流程圖
c.本題調試過程碰到問題及解決辦法
(1)錯誤截圖
(2)問題及解決方法
本題無技術上的失誤,就是最開始沒讀懂題目,在想不足5min不收錢該怎么編,后來一下想到時間除以5得到的數設為整型,如果不足5min就是0了,就做出來了
要求三:上傳代碼
(1)我的Git地址:https://git.coding.net/jsjyuyaosong/usth--work.c.git
(2)上傳代碼截圖:
要求四:總結、點評及進度
1.總結
總的來說,這周我過的還算充實。主要就是完成PTA的作業,學習了if語句。
(1)我知道了要想用C語言描述根號,要在開始注明有math,在后寫sqrt(),就可以了;
(2)我還學到了在平時計算的時候,float句型要寫上.0f,而不是.0,寫.0電腦就會用double型來處理,而不是float型;
(3)還有就是四舍五入就是在輸出的時候想取幾位小數點就取幾位,這樣會自動四舍五入的;
(4)再有就是在scanf中&真的總忘寫,以后一定會多多注意這件事!
2.點評
點評同學的博客地址:
徐銘博:http://www.cnblogs.com/xmb1547828350/p/7719018.html
豐大為:http://www.cnblogs.com/DavidPark/p/7707156.html
劉煒旗:http://www.cnblogs.com/ryo-/p/7731894.html
3.進度
學習進度表及折線圖
注意:時間的單位為分鍾。