C语言程序:三角形的边长abc,判断能否构成三角形。若能,请指出何种三角形(等腰、直角、一般三角形)

如题所述

#include <stdio.h>

void main()

{

 printf("请输入三角形的三个边长\n");

 float a,b,c;

 scanf("%f%f%f", &a, &b, &c);

 if((a + b > c) && (a + c > b) && (b + c > c))

 {

  bool zhijiao = false;

  bool dengyao = false;

  if((a*a == b*b+c*c) || (b*b == a*a+c*c) || (c*c == b*b+a*a))

  {

   zhijiao = true; 

  }

  if((a == b) || (b == c) || (c == a))

  {

   dengyao = true;

     

  }

        if(dengyao && zhijiao)

  {

      printf("边长为%f, %f, %f三角形构是等腰直角三角形\n", a,b,c);

  }

  else if(zhijiao)

  {

      printf("边长为%f, %f, %f三角形构是直角三角形\n", a,b,c);

  }

  else if(dengyao)

  {

      printf("边长为%f, %f, %f三角形构是等腰三角形\n", a,b,c);

  }

  else

  {

      printf("边长为%f, %f, %f三角形构是一般三角形\n", a,b,c);

  }

 }

 else

 {

     printf("边长为%f, %f, %f三角形构不成三角形\n", a,b,c); 

 }

}

 

运行结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-01
任意两边的和大于第三边,就能构成三角形。追问

C语言程序

追答

好吧,我不懂这个抱歉

第2个回答  2013-04-01
这个就是几个if --else的嵌套,没什么难度
判断是否构成三角形的条件是任意两边之和大于第三边,这里有个小技巧,就是输入abc后,拍一下序,那么判断的时候只要写一个就可以了,不用三个情况都写追问

能具体写出来参考一下吗,谢了哈~

追答

你这个可以啊