代码改变世界

第二次作业

2018-11-07 08:45  樊宇烽  阅读(728)  评论(2编辑  收藏  举报

作业要求:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2292 (10 分)

PTA第三次作业:分段计算居民水费

为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,居民应交水费y(元)与月用水量x(吨)相关:当x不超过15吨时,y=4x/3;超过后,y=2.5x17.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条件语句等知识。