C语言第二次博客作业---分支结构

一、PTA实验作业

题目1:计算分段函数[2]

本题目要求计算下列分段函数f(x)的值:

f2-11

注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。

1.实验代码

    double x,y;
    scanf("%lf",&x);
    if (x>=0){
        y = sqrt(x);
    }
    else{
        y = pow(x+1,2) + 2*x + 1/x; 
    }
    printf("f(%.2f) = %.2f",x,y);
    return 0;

2 设计思路

第一步:定义两个双精度浮点型变量x,y
第二步:从键盘输入一个数存入x中
第三步:若x大于等于0则y等于根号x
第四步:否则y= pow(x+1,2) + 2*x + 1/x
第五步:输出y

3.本题调试过程碰到问题及解决办法

1.要开根号跟求平方时只输入了sqrt以及pow导致答案不准确。解决方法:在代码开头输入#include<math.h>

4.本题PTA提交列表

1232097-20171025151347848-1249966502.png

题目2:7-4 输出三角形面积和周长

1.实验代码

int a,b,c;
    double s,area,primeter;
    scanf("%d%d%d",&a,&b,&c);
    s=(1.0*a+1.0*b+1.0*c)/2;
    area=sqrt(s*(s-1.0*a)*(s-1.0*b)*(s-1.0*c));
    primeter=a+b+c;
    if(a+b>c&&a+c>b&&b+c>a){
        printf("area = %.2f; ",area);
        printf("perimeter = %.2f",primeter);
    }
    else{
        printf("These sides do not correspond to a valid triangle");
    }

2 设计思路

第一步:定义三个整形变量a,b,c
第二步:输入三个整形变量分别存入啊a,b,c中
第三步:定义三个双精度浮点型变量s,area,primeter
第四步:计算s=(1.0a+1.0b+1.0c)/2;
第五步:计算area=sqrt(s
(s-1.0a)(s-1.0b)(s-1.0*c));
第六步:计算primeter=a+b+c
第七步:判断a,b,c是否满足两边之和大于第三边,若满足则输出area和perimeter若不满足则输出These sides do not correspond to a valid triangle

3.本题调试过程碰到问题及解决办法

1.对分支结构掌握不熟练导致程序判断错误输出错误的答案。解决方法:通过调试,修改if条件句中的条件。

4.本题PTA提交列表

1232097-20171025153201926-1029867048.png

题目3:7-6 出租车计价

本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:

起步里程为3公里,起步费10元;
超起步里程后10公里内,每公里2元;
超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。

1.实验代码

int fee,minute;
    double mile;
    scanf("%lf %d",&mile,&minute);
    if(mile<=3.0&&minute<5){
        fee=10;
    }
    if(mile<=3.0&&minute>=5){
        fee=10+minute/5*2;
    }
    if(mile>3.0&&minute<5){
        fee=10+(mile-3)*2; 
    }
    if(mile>3&&minute>=5){
        fee=10+(mile-3)*2+minute/5*2;
    }
    if(mile>=10&&minute<5){
        fee=10+7*2+(mile-10)*3;
    }
    if(mile>=10&&minute>=5){
        fee=10+7*2+3*(mile-10)+2*minute/5;
    }
    printf("%d",fee);
    return 0;

2 设计思路

第一步:定义两个整形变量fee与minute
第二步:定义一个双精度浮点型变量mile
第三步:输入两个数分别存于mile与minute中
第四步:判定mile与minute与题目所给条件的关系
第五步:根据判定结果算出不同的fee的值
第六步:输出符合条件的fee值

3.本题调试过程碰到问题及解决办法

1.判定条件打的不准确导致结果错误。解决办法:通过Dev c的调试找出问题并修改
2.将mile定义为整形变量导致答案错误。解决办法:调试并更深一步了解整形变量与浮点型变量的定义并修改

4.本题PTA提交列表

1232097-20171025153237098-2036348853.png

题目4:7-8 程序设计联考

1.实验代码

int number,x;
    scanf("%d",&number);
    x=number/100000;
    switch(x){
    case 1 :
        printf("Hunan Agricultural University");
        break;
    case 2 :
        printf("Jishou University");
        break;
    case 3 :
        printf("Huaihua University");
        break;
    case 4 :
        printf("Aerospace University");
        break;
    case 5 :
        printf("Ocean University");
        break;
    default:
        printf("Other University");
        break;
    }
    return 0;

2 设计思路

第一步:定义两个整形变量number,x
第二步:输入一个数存于number中
第三步:求出数number的第一位数字x
第四步:用switch语句对x进行判定
第五步:根据不同判定结果输出不同大学

3.本题调试过程碰到问题及解决办法

1.对于switch语句掌握程度不够,case语句后忘记加break导致结果错误。解决办法:通过看书上代码找出错误。

4.本题PTA提交列表

1232097-20171025153914504-1610444335.png

二、截图本周题目集的PTA最后排名。

1232097-20171025154043473-553978379.png

三、本周学习总结

1.你学会了什么?

学会了用分支结构去编写c语言程序,并能通过分支结构去解决一些简单的问题。

2.本周的内容,你还不会什么?

对于if else语句跟switch语句的具体区别还不是太清楚,比如步知道什么时候用switch语句更方便。

3.你碰到什么困难,打算如何解决?

课后认真复习,勤思考,勤打代码,不会的问题多问同学跟老师。

转载于:https://www.cnblogs.com/llg202827372/p/7729221.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值