• 第一次作业题解


    第一次作业题解

    P5717 【深基3.习8】三角形分类

    思路

    在这里插入图片描述
    考的是if()的使用,还要给三条边判断大小

    在这里插入图片描述

    判断优先级:

    • 三角形?
    • 直角、钝角、锐角
    • 等腰
    • 等边

    在这里插入图片描述

    判断按题给顺序来

    代码

    #include 
    int main()
    {
        int a = 0, b = 0, c = 0, x = 0, y = 0, z = 0;
        scanf("%d %d %d", &a, &b, &c);
        x = (a < b ? a : b) < c ? (a < b ? a : b) : c; 
        z = (a > b ? a : b) > c ? (a > b ? a : b) : c;
        y = a + b + c - x - z;
    
        if (x + y <= z) 
        {
            printf("Not triangle\n");
        }
        else 
        {
            if (x * x + y * y == z * z) printf("Right triangle\n");
            else if (x * x + y * y > z * z) printf("Acute triangle\n");
            else if (x * x + y * y < z * z) printf("Obtuse triangle\n");
    
            if(x == y || y == z || x == z)  printf("Isosceles triangle\n");
    
            if(x == y && y == z)  printf("Equilateral triangle\n");
        }
    
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    P5714 【深基3.例7】肥胖问题

    思路

    在这里插入图片描述

    数据类型double

    在这里插入图片描述

    先计算,后判断,超重要多输出个BMI

    在这里插入图片描述

    看着麻烦,刚开始把我也唬住了

    在这里插入图片描述

    其实用%g就好了,涨知识了(参考群里《C Primer Plus》表4.3)

    在这里插入图片描述

    代码

    #include 
    int main()
    {
        double m = 0, h = 0, bmi = 0;
        scanf("%lf %lf", &m, &h);
        bmi = m / (h * h);
    
        if (bmi < 18.5) printf("Underweight\n");
        else if (bmi >= 24) printf("%.6g\nOverweight\n", bmi);
        else printf("Normal\n");
    
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    P1422 小玉家的电费

    思路

    在这里插入图片描述

    对用电量判断,最后保留一位小数

    代码

    #include 
    int main()
    {
        double a = 0, ans = 0;
        scanf("%lf", &a);
    
        if (a <= 150) ans = a * 0.4463;
        else if (a >= 151 && a <= 400) ans =  150 * 0.4463 + (a - 150) * 0.4663;
        else ans =  150 * 0.4463 + 250 * 0.4663 + (a - 400) * 0.5663;
    
        printf("%.1lf", ans);
    
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    P4414 [COCI2006-2007#2] ABC

    思路

    在这里插入图片描述

    先比大小,得出ABC

    在这里插入图片描述

    ABC、ACB、BAC、BCA、CAB、CBA六种情况,不用字符串也可以,就麻烦一点

    代码

    #include 
    int main()
    {
        int a = 0, b = 0, c = 0, A = 0, B = 0, C = 0;
        char x = 0, y = 0, z = 0;
        scanf("%d %d %d", &a, &b, &c);
        scanf("\n%c%c%c", &x, &y, &z);
    
        A = (a < b ? a : b) < c ? (a < b ? a : b) : c; 
        C = (a > b ? a : b) > c ? (a > b ? a : b) : c;
        B = a + b + c - A - C;
    
        if (x == 'A' && y == 'B' && z =='C') printf("%d %d %d", A, B, C);
        else if (x == 'A' && y == 'C' && z =='B') printf("%d %d %d", A, C, B);
        else if (x == 'B' && y == 'A' && z =='C') printf("%d %d %d", B, A, C);
        else if (x == 'B' && y == 'C' && z =='A') printf("%d %d %d", B, C, A);
        else if (x == 'C' && y == 'B' && z =='A') printf("%d %d %d", C, B, A);
        else if (x == 'C' && y == 'A' && z =='B') printf("%d %d %d", C, A, B);
    
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    P1909 [NOIP2016 普及组] 买铅笔

    思路

    在这里插入图片描述

    • 每种的情况要买几包
    • 每种情况的价钱
    • 找出最优解

    代码

    #include 
    int main()
    {
        int n = 0, n1 = 0, v1 = 0, n2 = 0, v2 = 0, n3 = 0, v3 = 0;
        int x = 0, y = 0, z = 0, ans = 0;
        scanf("%d %d %d %d %d %d %d", &n, &n1, &v1, &n2, &v2, &n3, &v3);
    
        if (n % n1 == 0) x = (n / n1) * v1;
        else x = (n / n1 + 1) * v1; 
    
        if (n % n2 == 0) y = (n / n2) * v2;
        else y = (n / n2 + 1) * v2; 
    
        if (n % n3 == 0) z = (n / n3) * v3;
        else z = (n / n3 + 1) * v3; 
    
        ans = (x < y ? x : y) < z ? (x < y ? x : y) : z;
    
        printf("%d", ans);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    写在后面

    洛谷题确实有点难度,不过再难也是基础题。加油吧,少年!
    也可以试试C语言网的题集,更基础一点

    在这里插入图片描述

    晚安

  • 相关阅读:
    java毕业生设计一中体育馆管理系统计算机源码+系统+mysql+调试部署+lw
    TikTok的伦理挑战:虚拟世界与现实世界的交汇
    2023年五一杯数学建模B题快递需求分析问题求解全过程论文及程序
    定理证明过程的复杂度(Stephen A .Cook)定理1证明的解析
    论文阅读 (100):Simple Black-box Adversarial Attacks (2019ICML)
    安装ThinkPHP5.1并在框架中使用FFmpeg视频处理工具遇到的问题和解决办法
    企业电子招标采购系统源码Spring Boot + Mybatis + Redis + Layui + 前后端分离 构建企业电子招采平台之立项流程图
    装饰器、迭代器、生成器
    【基础】网络(Socket、HTTP、TCP/IP、IO流)面试题
    系统安装(一)CentOS 7 本地安装
  • 原文地址:https://blog.csdn.net/young_Klara/article/details/133365377