作业要求:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2292 (10 分)
PTA第三次作业:分段计算居民水费
为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,居民应交水费y(元)与月用水量x(吨)相关:当x不超过15吨时,y=4x/3;超过后,y=2.5x−17.5。请编写程序实现水费的计算。
输入格式:输入在一行中给出非负实数x。
输出格式:在一行输出应交的水费,精确到小数点后2位。
输入样例1:12
输出样例1:16.00
输入样例2:16
输出样例2:22.50
一、实验代码
#include <stdio.h> int main(void) { double x,y; scanf("%lf",&x); if(x<=15) { y = 4*x/3; } else { y = 2.5*x - 17.5; } printf("%.2lf",y); return 0; }
二、解题思路
1.步骤
第一步:根据题意需先定义两个变量x,y,分别代表月用水量和居民应交水费。
第二步:输入一个非负实数x。
第三步:由题意可知,x=15是一个分界线,前后求水费的公式不同,所以用if条件语句讨论当x<=15和当x>15的情况。
第四步:输出应交的水费,并保留两位小数。
2.流程图
3.本题调试过程碰到问题及解决办法
数字和变量之间没添加运算符。
调试:
:
7-2 高速公路超速处罚 (15 分)
按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款;若达到或超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。
输入格式:
输入在一行中给出2个正整数,分别对应车速和限速,其间以空格分隔。
输出格式:
在一行中输出处理意见:若属于正常行驶,则输出“OK”;若应处罚款,则输出“Exceed x%. Ticket 200”;若应吊销驾驶证,则输出“Exceed x%. License Revoked”。其中x是超速的百分比,精确到整数。
输入样例1:
65 60
输出样例1:OK
输入样例2:110 100
输出样例2:Exceed 10%. Ticket 200
输入样例3:200 120
输出样例3:Exceed 67%. License Revoked
一、实验代码
#include <stdio.h> int main(void) { int a,b,c,d; scanf("%d %d",&a,&b); float x; x=(a-b)*100.0/b; c=1.10*b; d=1.50*b; if(a<c) { printf("OK"); } else if(a>=c&&a<d) { printf("Exceed %.0f%%. Ticket 200",x); } else { printf("Exceed %.0f%%. License Revoked",x); } return 0; }
二、解题思路
1.步骤
第一步:定义五个变量a b c d x
第二步:输入两个数给a b
第三步:根据题意写上计算的表达式
第四步:用if条件语句分类讨论
第五步:输出结果
2.流程图
三、调试:
个人总结
通过这一周的学习,我学习到了if条件语句等知识。