判断三角形的形状

写在前面:

题解是对具体题目的编程实现,不会具体讲解C语言语法。请先大致学习好语法,自己敲敲代码后再看题解(上来就直接看题解的习惯不好哟~)。在每一题的题解之前,会列出本题涉及到的语法知识供参考,可以在教材或其他学习资源找到这些内容学习。😀


本题的预备知识:

  • 变量的定义与赋值操作
  • 输入(scanf)输出(printf)语句 
  • 条件语句(if)及其嵌套使用
  • 运算符的使用:||、>、<、==

 


判断三角形的形状

成绩5开启时间2020年03月14日 星期六 08:00
折扣0.8折扣时间2020年03月29日 星期日 23:55
允许迟交关闭时间2020年03月29日 星期日 23:55

输入三角型的三条边,判断三角形的形状。假设输入的三边边长均>0。

(提示:本题中应该要用到 if 语句嵌套)

输入:

三角型的3条边的长度(int型)。

输出:

等边三角形:equilateral triangle.
等腰三角形:isoceles triangle.
不构成三角形:non-triangle.
一般三角形:triangle.

 测试输入期待的输出时间限制内存限制额外进程
测试用例 1 
  1. 2 2 2↵
 
  1. equilateral triangle.↵
1秒64M0
测试用例 2 
  1. 3 2 2↵
 
  1. isoceles triangle.↵
1秒64M0
测试用例 3 
  1. 1 3 1↵
 
  1. non-triangle.↵
1秒64M0
测试用例 4 
  1. 3 4 5↵
 
  1. triangle.↵
1秒64M0

题解

#include <stdio.h>  //导入stdio.h库,里面包含输入输出函数

int main() {
    int x, y, z;  //定义三个整型变量,用于储存三个输入值
    scanf("%d %d %d", &x, &y, &z);   //输出三条边(整型),分别存入变量a、b、c中

    if (x + y <= z || x + z <= y || y + z <= x)  //条件1:不满足三角形的三边条件
        printf("non-triangle.\n");
    else if (x == y || y == z || x == z) {  // 条件2:满足三角形的三边条件,且至少有两条边相等
        if (x == y && y == z)  //条件2.1:满足三角形的三边条件,三条边都相等
            printf("equilateral triangle.\n");
        else  //条件2.2:满足三角形的三边条件,只有两条边相等
            printf("isoceles triangle.\n");
    }
    else  //条件3:满足三角形的三边条件,没有相等的边
        printf("triangle.\n");

}

 本题主要注意根据逻辑来实现条件语句的嵌套!本题有三个外层判断:

  1. 无法构成三角形
  2. 可以构成三角形,且有相等的边
  3. 可以构成三角形,单没有相等的边

而在第二个条件中,又嵌套了两个内部判断:

  • 2.1:三边都相等
  • 2.2:仅有两条边相等

注释中已经标明每个条件的意义与条件之间的关系。


总结

易错点:

  • 输入/输出变量时,要将输入格式与对应变量的格式匹配好。比如说,本题输入三个%d(整型格式),对应变量x、y、z也是整型的变量
  • scanf 内对应的变量应该使用取址符号 '&'
  • 根据题目输出的要求,输出结果最后要加上换行符,即\n。

🔺强调一个好习惯:一定要用缩进(空格)来突出显示 if 和其对应的 else、条件嵌套的关系,使得能轻松看出每一条if语句的结构。这些都是写处可读性好的代码的规范,具体的代码结构可以参照我的代码。

多说一句:如果你用的是windows系统在devc++内编程的话,如果我没记错,直接使用ctrl+alt+L 可以自动格式化代码,让你的代码结构符合标准



有任何问题欢迎评论交流,如果本文对您有帮助不妨点点赞,嘻嘻~ 


end 

欢迎关注个人公众号 鸡翅编程 ”,这里是认真且乖巧的码农一枚。

---- 做最乖巧的博客er,做最扎实的程序员 ----

旨在用心写好每一篇文章,平常会把笔记汇总成推送更新~

在这里插入图片描述

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值