C语言第二周作业----分支结构

本文介绍了四个PTA编程实践案例,包括计算分段函数、输出三角形面积和周长、出租车计价以及根据考生账号判断所属学校。每个案例详细展示了代码实现、设计思路、调试过程及提交记录。

一、PTA实验作业

题目1.7-1计算分段函数

本题目要求计算下列分段函数f(x)的值:
1120968-20171019163313646-959725918.png

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

1.实验代码

int main()
{
    float fx, x;
    scanf("%f", &x);
    if (x >= 0)
        fx = sqrt(x);
    else
        fx = pow(x + 1, 2) + 2*x + 1 / x;
    printf("f(%.2f) = %.2f", x, fx);
}

2.设计思路

  • 定义float型变量fx和x
  • 输入x
  • 使用if else语句进行判断并给fx赋值
  • 按照格式输出fx

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

    没有

    4.PTA提交列表

    1120968-20171019164617568-2111541324.png

题目2.7-4输出三角形面积和周长

本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。注意:在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式:area=√​s(s−a)(s−b)(s−c)​​​,其中s=(a+b+c)/2。

1.实验代码

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

}

2.设计思路

  • 定义三个整形变量a,b,c来存放三角形的长宽高
  • 定义三个浮点型变量 s,area,perimeter来存放海伦公式,面积和周长
  • 输出三角形的长宽高
  • 计算它的面积和周长,判断三角形是否符合构成条件
  • 输出结果

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

    应该先判断后计算,而不是先计算后判断,这样会节省一些时间。

    4.PTA提交列表

    1120968-20171019170316724-1972279039.png

题目3.7-6出租车计价

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

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

1.试验代码

int main()
{
    int amount,time;
    float km;
    scanf("%f%d", &km, &time);
    if (km <= 3) {
        amount = 10 + time / 5 * 2+0.5;
        printf("%d", amount);
    }
    else if (km > 3 && km <= 10)
    {
        amount = 10 + (km - 3) * 2 + time / 5 * 2+0.5;
        printf("%d", amount);
    }
    else if (km > 10) {
        amount = 24 + (km - 10) * 3 + time / 5 *2+0.5;
        printf("%d",amount);
    }
}

2.设计思路

  • 定义两个整形变量amount和time来表示金额和等待时间
  • 定义一个浮点型变量来表示公里数
  • 输入公里数和时间
  • 用if else if语句进行多分支判断
  • 经过计算并把结果赋值给amount
  • 输出结果

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

    刚开始以为不用四舍五入,在看到最后一个样例输出的时候发现需要,然而我不知道如何让整形变量四舍五入,最后选择在所有的计算表达式中+0.5以达到目的

    4.PTA提交列表

    1120968-20171019171025021-448738212.png

    题目4.7-8程序设计联考

    自从湖南农业大学、吉首大学和怀化学院组织程序设计课程联考以后,举办联考的经验越来丰富。尤其是在使用PTA系统作为考试平台之后,联考工作得到了很多学校的认可和支持。所以,现在参与联考的学校比较多。为了便于区分考生,考生账号的第一位是学校代号。1代表Hunan Agricultural University,2代表Jishou University,3代表Huaihua University,4代表Aerospace University,5代表Ocean University。 请编写程序根据考生的账号区分考生的学校。

    1.实验代码

int main()
{
    int account,first;
    scanf("%d", &account);
    first = account / 100000;
    switch (first) {
    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");
    

    }
    return 0;
}

2.设计思路

  • 定义整形变量account和first来表示考生号和第一位数字
  • 输入考生号
  • 经过计算得到考生号第一位数字
  • 用switch语句进行分支选择并输出相应结果

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

    一开始不知道switch语句中都不满足则输出···的语法不知道后来上网查了下就知道了

    4.PTA提交列表

    1120968-20171019171849474-300448569.png

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

    1.PTA排名

    1120968-20171019172338115-1518742307.png

三、本周学习总结

1.你学会了什么?

1.通过这周学习,我学会了 if else 语句的使用 和使用if else if语句进行多分支判断
2.学会使用switch语句 并了解了if else if语句和switch语句之间的区别,if else if语句适用于范围的判断,而switch语句适用于离散值判断

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

还行 都比较熟练

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

有时会忘记类型之间的转换 导致结果有误,应该多多练习代码,可以一眼看出其中的问题,并解决

转载于:https://www.cnblogs.com/zc-565095526/p/7693315.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值