m0_73292724 2022-09-09 19:56 采纳率: 91.7%
浏览 45
已结题

三角形的判断代码不对,求解惑

问题遇到的现象和发生背景

求解惑,我的代码问题出在哪里,样例通过,但不对,是15,16段越界判断的可能性小,求解惑,我知道正确的代码,请不要直接给代码,尽可能用原来代码思路,谢谢
输入三条线段的长度(整型),根据是否能组成三角形,输出以下结果之一:锐角三角形、直角三解形、钝角三角形、不能构成三角形。

输入格式:
三个整数

输出格式:
锐角三角形输出:Acute triangle
直角三解形输出:Right triangle
钝角三角形输出:Obtuse triangle
不能构成三角形输出:Not triangle
输入样例:
2 3 3
输出样例:
Acute triangle
输入样例:
5 4 3
输出样例:
Right triangle
输入样例:
6 4 3
输出样例:
Obtuse triangle
输入样例:
8 4 3
输出样例:
Not triangle

问题相关代码,请勿粘贴截图

#include <stdio.h>
int main()
{
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    int max=(a>b?a:b)>c?(a>b?a:b):c;//求三者最大值
    int min=(a<b?a:b)<c?(a<b?a:b):c;//求三者最小值
    int cen=a+b+c-max-min;//中间值
    if(min+cen<max||a<=0||b<=0||c<=0){
        printf("Not triangle");
    }else{
        if(min*min+cen*cen==max*max){
        printf("Right triangle");
    }else if(min*min+cen*cen<max*max){
        printf("Obtuse triangle");
    }else if(min*min+cen*cen>max*max){
        printf("Acute triangle");
    }
    }
    return 0;
}
  • 写回答

4条回答 默认 最新

  • 快乐鹦鹉 2022-09-09 20:16
    关注

    if(min+cen<max||a<=0||b<=0||c<=0)
    改为
    if(min+cen<=max||a<=0||b<=0||c<=0)
    ==========
    当min+cen和max相等时,也是不能构成三角形的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 9月17日
  • 已采纳回答 9月9日
  • 创建了问题 9月9日

悬赏问题

  • ¥15 yolov8边框坐标
  • ¥15 matlab中使用gurobi时报错
  • ¥15 WPF 大屏看板表格背景图片设置
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真