第四次作业

本文介绍了使用C语言实现分段函数的方法,包括计算分段函数、A除以B、阶梯电价计算及出租车计价等问题的解决思路和具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内容一
已经全部完成
1238324-20171028143427039-1073708536.png

内容二
题目7-1 计算分段函数

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

设计思路
(1)根据题目可以找出两种情况,分别为x等于0与x不等于0两种情况。
(2)使用if语句分成两种情况求y。
(3)按照题目要求输出最后结果。
流程图
1238324-20171028153437695-790882623.png

问题与解决方法
1238324-20171028153657976-1711220245.png

最开始遇到了这个问题,然后反复检查也没有发现别的问题,但答案就是错的,最后突然想到if语句中要用两个等号才能代表等于,进行了修改,最终正确。

题目7-2 A除以B

#include<stdio.h>
int main()
{

    float a,b,c,d,e;
    scanf("%f %f",&a,&b);
    if(b>0)
    {
        c=a/b;
        printf("%.0f/%.0f=%.2f",a,b,c);
    }
    else
    {
        if(b==0)
        {
            printf("%.0f/%.0f=Error",a,b);
        }
        else
        {
            c=a/b;
            printf("%.0f/(%.0f)=%.2f",a,b,c);
        }
    }
}

设计思路
(1)该题给出了三个输出和输入的样例,就说明要考虑这三种情况。
(2)仔细看题目的要求若下面为负数时候,输出的除数要加括号,若除数为0则输出英文,输出的得数一定要保证两位小数。
(3)整体数据都是float形式,所以输出的时候要加上%.0f,这样就是整数了。
(4)最后输出结果
流程图
1238324-20171028160155180-692647029.png

问题与解决方法
此题上课做过练习,没有问题。

题目7-6 阶梯电价

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

设计思路
(1)这道题的算法分为两种,一种是50 度以内,一种是50度以外,注意是超出的部分收费。
(2)结果保留到小数点后两位,输出结果。
流程图
1238324-20171028161924680-475233928.png

问题与解决方法
1238324-20171028162219742-1580923488.png

刚开始对问题没有读懂,没有看到是超出部分价格上涨,后来再次读题,进行了修改。

题目7-7 出租车计价

#include<stdio.h>
int main()
{
    int g;
    float a,b,c,d,e;
    scanf("%f %f",&a,&b);
    if (b<5)
    {
        if(a<=3)
        {
            c=10;
            printf("%.0f",c);
        }
        else
        {
            if (a>3&&a<=10)
            {
                c=10+(a-3)*2;
                printf("%.0f",c);
            }
            else if(a>10)
            {
                c=10+14+(a-10.0)*3;
                printf("%.0f",c);
            }
        }
    }
    else if (b>=5)
    {
        if(a<=3)
        {
            c=10;
            d=b/5.0*2;
            e=c+d;
            printf("%.0f",e);
        }
        else
        {
            if (a>3&&a<=10)
            {
                c=10+(a-3)*2;
                    d=b/5.0*2;
                    e=c+d;
                printf("%.0f",e);
            }
            else if(a>10)
            {
                c=10+14+(a-10.0)*3;
                    g=(b/5);
                    d=g*2;
                     e=c+d;
                printf("%.0f",e);
            }
        }
    }
    

}

设计思路
(1)题目中给出了很多条件,都需要分情况讨论,进行一下整理,最后觉得先判断有没有因路阻而收费的,从而分为两种情况,再在每种情况中讨论另为三种情况。
(2)还要注意特别计算时候的优先级,还有四舍五入的问题。
流程图
1238324-20171028165209758-1847536145.png

问题与解决方法
这道题理清思路后也并不是很难,关键是在最后的小数的四舍五入,没有别的问题。

GIT
已经上传1238324-20171028172530773-709762340.png
地址https://git.coding.net/MikeJackYao/The-first.git

总结、互评和学习进度
1、总结本周所学内容:本周主要做了很多练习,并且学习了一些文档,表格和网页制作,对于一些符号用法更进一步了解,本周过得还算充实。
2、点评
于耀淞:http://www.cnblogs.com/jsjyys/p/7709233.html
徐铭博:http://www.cnblogs.com/xmb1547828350/p/7719018.html
刘炜旗:http://www.cnblogs.com/ryo-/
3、表格和折线图
1238324-20171028214726430-2001603696.png

转载于:https://www.cnblogs.com/yaoshunyux/p/7747467.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值