标题:求该程序的解答
只看楼主
HX2236
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2019-10-24
 问题点数:0 回复次数:2 
求该程序的解答
#include <stdio.h>
#include <math.h>
int main()
{
    float a,b,c;
    printf("请输入三条线段长度\n");
    scanf("%f%f%f",&a,&b,&c);
    if(a+b>c&&a+c>b&&b+c>a)
        {
            if(a==b&&b==c&&a==c)
            printf("等边三角形\n");
            else
            if(a==b||a==c||b==c)
            printf("等腰三角形\n");
            else
            if(a==b||a==c||b==c&&a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
            printf("等腰直角三角形\n");
            else
            if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
            printf("直角三角形\n");
            else printf("一般三角形\n");
        }     
    else printf("不是三角形\n");
}

已经知道这个编程,求加入循环语句,让其一次性输入不同的几条边,可以输出所有的三角形种类
搜索更多相关主题的帖子: 输入 || include 三角形 printf 
2019-10-24 10:14
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
先不说循环了,你这代码本身就有错误
            else if(a==b||a==c||b==c)
                printf("等腰三角形\n");
            else if(a==b||a==c||b==c&&a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
                printf("等腰直角三角形\n");
代码永远到不了 printf("等腰直角三角形\n");
2019-10-24 10:23
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:0 
这里总的来说,有两个问题存在:
   1:从编程方面来看,a==b||a==c||b==c&&a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a这里的&&和||的优先级不一样,&&高于||,所以要这样写才对:
         (a==b||a==c||b==c)&&(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
   2:从数学方面来看,等腰直角三角形的边,一定(至少)有一条边是无理数。比如1和1和根号2.只有这样才会出现等腰直角三角形。这个无理数,编程时,是不好输入的。
收到的鲜花
  • rjsp2019-10-24 13:01 送鲜花  5朵  
2019-10-24 11:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-497414-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049326 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved