第四周作业

***PTA***

题目7-1 计算分段函数

1.实验代码

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

2. 设计思路

第一步:定义x和y。

第二步:设置if语句,如果x==0,那么y=0;else y=1/x。

第三步:编译运行代码,结束。

3.流程图

4.问题及解决方法

把if后的条件写错,将0赋值给x(x=0),而不是x等于0(x==0);在if(x=0)中x后再加一个等号。

题目7-2 A除以B

1.实验代码

#include<stdio.h>
int main() 
{
    int A,B;
    float c;
    scanf("%d %d",&A,&B);
    if(B==0)
    {
    printf("%d/%d=Error",A,B);
    }
    else if(B>0)
        {
        c=1.0*A/B;
         printf("%d/%d=%.2f",A,B,c);
        }
        else
        {
         c=1.0*A/B;
         printf("%d/(%d)=%.2f",A,B,c);
    }

    return 0;
}

2. 设计思路

第一步:定义A,B,c。

第二步:根据题目条件设置if-else if-else框架。

第三步:编译运行代码,结束。

3.流程图

4.问题及解决方法

因为有了上一道题的经验,所以在解这道题的过程很流畅,没有问题。

题目7-6 阶梯电价

1.实验代码

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

    return 0;
}

2.设计思路

第一步:定义x,y;

第二步:根据题意设置if-else if-else框架。

第三步:编译运行,结束

3.流程图

4.问题及解决方案

此题与7-2题大同小异,做题过程依然很流畅。

题目7-7 出租车计价

1.实验代码

#include<stdio.h>
int main() 
{
    int minutes;
    float mile,m;
    scanf("%f %d",&mile,&minutes);
    minutes=minutes/5;
    if(mile<=3)
    {
        m=10+2*minutes;
    }
    else if(mile>3&&mile<=10)
    {
        m=10+2*(mile-3)+2*minutes;
    }
    else
    {
        m=10+2*7+(mile-10)*2*1.5+2*minutes;
    }
    printf("%.0f",m);
    return 0;
}

2.设计思路

此题和7-6 阶梯电价7-7 出租车计价的解题思路是一样的。

3.流程图

 4.问题及解决方法

在数据类型上出了错,改了一下,问题不大。

---恢复内容结束---

***PTA***

题目7-1 计算分段函数

1.实验代码

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

2. 设计思路

第一步:定义x和y。

第二步:设置if语句,如果x==0,那么y=0;else y=1/x。

第三步:编译运行代码,结束。

3.流程图

4.问题及解决方法

把if后的条件写错,将0赋值给x(x=0),而不是x等于0(x==0);在if(x=0)中x后再加一个等号。

题目7-2 A除以B

1.实验代码

#include<stdio.h>
int main() 
{
    int A,B;
    float c;
    scanf("%d %d",&A,&B);
    if(B==0)
    {
    printf("%d/%d=Error",A,B);
    }
    else if(B>0)
        {
        c=1.0*A/B;
         printf("%d/%d=%.2f",A,B,c);
        }
        else
        {
         c=1.0*A/B;
         printf("%d/(%d)=%.2f",A,B,c);
    }

    return 0;
}

2. 设计思路

第一步:定义A,B,c。

第二步:根据题目条件设置if-else if-else框架。

第三步:编译运行代码,结束。

3.流程图

4.问题及解决方法

因为有了上一道题的经验,所以在解这道题的过程很流畅,没有问题。

题目7-6 阶梯电价

1.实验代码

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

    return 0;
}

2.设计思路

第一步:定义x,y;

第二步:根据题意设置if-else if-else框架。

第三步:编译运行,结束

3.流程图

4.问题及解决方案

此题与7-2题大同小异,做题过程依然很流畅。

题目7-7 出租车计价

1.实验代码

#include<stdio.h>
int main() 
{
    int minutes;
    float mile,m;
    scanf("%f %d",&mile,&minutes);
    minutes=minutes/5;
    if(mile<=3)
    {
        m=10+2*minutes;
    }
    else if(mile>3&&mile<=10)
    {
        m=10+2*(mile-3)+2*minutes;
    }
    else
    {
        m=10+2*7+(mile-10)*2*1.5+2*minutes;
    }
    printf("%.0f",m);
    return 0;
}

2.设计思路

此题和7-6 阶梯电价7-7 出租车计价的解题思路是一样的。

3.流程图

 4.问题及解决方法

在数据类型上出了错,改了一下,问题不大。

***GIT***

GIT地址:https://git.coding.net/kimhae/test.git

***学习进度***

 ***点评***

http://www.cnblogs.com/jsjyys/p/7709233.html

http://www.cnblogs.com/zgq947/p/7746392.html

http://www.cnblogs.com/jhd1127/p/7747145.html

原文地址:https://www.cnblogs.com/kimhae/p/7747530.html