PTA題目的處理(二)

时间:2023-03-09 18:51:55
PTA題目的處理(二)

題目7-1 計算分段函數[1]

1.實驗代碼

#include <stdio.h>
int main()
{
float x,y;
scanf("%f",&x);
if(x==)
{
y=;
printf("f(%.1f) = %.1f",x,y);
}
else
{
y=/x;
printf("f(%.1f) = %.1f",x,y);
}
return ;
}

2.設計思路

(1)第一步:輸入實數自變量x

第二步:若自变量x=0,则实数因变量y=0,否则因变量y=1/x

第三步:输出f(x)=y(x和y各保留一位小数)

(2)PTA題目的處理(二)

3.調試過程中無問題

題目7-2 A除以B

1.實驗代碼

#include <stdio.h>
int main()
{
signed int A,B;
double C;
scanf("%d %d",&A,&B);
if(B==)
{
printf("%d/%d=Error",A,B);
}
else if(B>)
{
C=(double)A/B;
printf("%d/%d=%.2f",A,B,C);
}
else
{
C=(double)A/B;
printf("%d/(%d)=%.2f",A,B,C);
}
return ;
}

2.設計思路

(1)第一步:輸入整數A,B

第二步:若B=0,則輸出A/B=Error,否則下一步

第三步:實數C=A/B

第四步:若B>0,輸出A/B=C(C保留兩位小數),否則輸出A/(B)=C(C保留兩位小數)

(2)

PTA題目的處理(二)

3.調試過程中無問題

題目7-6 階梯電價

1.實驗代碼

#include <stdio.h>
#define sold 26.5
int main()
{
float consumption,cost;
scanf("%f",&consumption);
if(consumption<=&&consumption>=)
{
cost=consumption*0.53;
printf("cost = %.2f",cost);
}
else if(consumption<)
{
printf("Invalid Value!");
}
else
{
cost=(consumption-)*0.58+sold;
printf("cost = %.2f",cost);
}
}

2.設計思路

(1)第一步:輸入實數用電量consumption,令使用50千瓦時的電價sold=26,5

第二步:若0<=consumption<=50,則實數電價cost=consumption*0.53,然後輸出cost=cost(後一個cost保留兩位小數),否則下一步

第三步:若consumption=<0,則輸出Invalid Value!,否則下一步

第四步:cost=(consumption-50)*0.58+sold,輸出cost=cost(cost保留兩位小數)

(2)

PTA題目的處理(二)

3.調試過程中無問題

題目7-7 出租車計價

1.實驗代碼

#include <stdio.h>
#define price1 10.0f
#define price2 24.0f
int main()
{
float distance,cost1,cost2;
int minute;
scanf("%f %d",&distance,&minute);
if(distance<=3.0f)
{
cost1=price1;
}
else if(distance<=10.0f)
{
cost1=price1+(distance-)*2.0f;
}
else
{
cost1=price2+(distance-)*;
}
if(minute>=)
{
if((minute%)==)
{
cost2=cost1+(minute/)*2.0f;
printf("%.0f",cost2);
}
else
{
cost2=cost1+(minute/)*;
printf("%.0f",cost2);
}
}
else
{
cost2=cost1;
printf("%.0f",cost2);
}
return ;
}

2.設計思路

(1)第一步:令起步價price1=10,超10公里後的價格price2=24,輸入實數路程distance、整數時間分鐘minute

第二步:若distance<=3,則路程費cost1=price1,跳到第四步,否則下一步

第三步:若distance<=10,則cost1=price1+(distance-3)*2,跳到第四步,否則cost1=price2+(distance-10)*3,跳到第四步

第四步:若minute>=5,則總車價cost2=cost1+(minute/5)*2,否則cost2=cost1

第五步:輸出cost2(cost2四捨五入取整數)

(2)

PTA題目的處理(二)

3.問題1:沒搞清楚超出10km是什麼意思,不知道是在3km的基礎上再超出10km還是就只行駛了10km

解決辦法:通過提交答案判斷正誤知道是只是行駛了10km

問題2:不知道題目中少於5分鐘的到底是什麼意思,是總時間小於5分鐘的不算錢,還是5分鐘的都算完後剩下不滿5分鐘的不收費

解決辦法:通過提交答案知道多出來的不滿5分鐘和總時間小於5分鐘的都不算錢

Git地址:https://git.coding.net/MemoriesBook/123.git

PTA題目的處理(二)

代碼行數 時間 博客字數 時間 涉及知識點
 200 10.21  0  3  if語句
 1000 10.22  1000  7  if語句
 20 10.23  0  1.5  if語句
 0 10.24  0  0  無
 100 10.25  0  1.5  if語句,for語句,輸入輸出
 0 10.26  0  0  無
 0 10.27  1000  2  無
 0 10.28  100  4  無
 0 10.29  0  0  無

PTA題目的處理(二)

馮子旋的博客地址:http://www.cnblogs.com/fengzx/p/7745112.html

董欣的博客地址:http://www.cnblogs.com/dx2017/p/7726120.html

董雅潔的博客地址:http://www.cnblogs.com/exo123/p/7737213.html

***學習終結**本週主要學習了if語句的else if的部分,還講了部分PTA的題目,同時在上課時老師稍微提了一下for語句,為了讓我們知道if語句是一條語句,並不是多條語句。遇到的問題是:if後面是不是一定要加else,客上講的例子有些沒有else也是對的,但是PTA上做的時候else if裡面是一定要加else的。