c语言编写程序:输入三角形的三条边,判断它们能否构成三角形,若能则指出何种三角形。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言编写程序:输入三角形的三条边,判断它们能否构成三角形,若能则指出何种三角形。相关的知识,希望对你有一定的参考价值。

我的程序错在哪里了?
为什么 不管输入什么 结果都是 等边三角形。。。
#include <stdio.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||a==c||b==c)
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 if (a==b&&a==c&&b==c )
printf("等腰三角形\n");

else
printf("不构成三角形\n");
return 0;

&&、||运算符使用错误,代码为:

#include <stdio.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&&a==c&&b==c) 

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 if (a==b||a==c||b==c ) 

printf("等腰三角形\\n");     

else   

printf("普通三角形\\n"); 

return 0;

扩展资料:

&&、|| 和 !的优先级为:

! > && > ||

! 运算符比许多 C++ 运算符具有更高的优先级。因此,为了避免错误,应始终将其操作数括在括号中,除非打算将其应用于没有其他操作符的变量或简单表达式。例如,来看以下表达式:

! (x > 2)
! x > 2

第一个表达式将 !运算符应用于表达式 x>2,它是在问“x 是否不大于 2”,然而,第二个表达式是将 !运算符应用于到 x。它是在问“x 的逻辑是否大于 2”。

假设 x 被设置为 5,由于 5 是非零值,所以被认为是 true,而 !运算符会将其反转为 false,即为 0,然后,> 运算符将确定 0 是否大于 2。为了避免这种错误,始终使用括号是明智的。

参考资料:

百度百科-逻辑运算符

参考技术A #include <stdio.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&&a==c&&b==c)//这里||改为&&

 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 if (a==b||a==c||b==c )//这里&&改为||

 printf("等腰三角形\\n");

  

   else 

        printf("不构成三角形\\n");

 return 0;

本回答被提问者采纳
参考技术B #include <stdio.h>
int main()

float a,b,c;
printf("请输入边长:\n");
scanf("%f %f %f",&a,&b,&c);
printf("a=%f b=%f c=%f\n",a,b,c);
if(a+b>=c && a+c>=b && b+c>=a )
if (a==b && a==c && b==c) //必须先用&& ,否则等腰会把等边包括在内啦
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
if (a==b||a==c||b==c )
printf("等腰三角形\n");
else //一般三角形的判定漏掉啦
printf("一般三角形\n");

else
printf("不构成三角形\n\n");
system("pause");
参考技术C First, float number shouldn't be compared with this equal operater == , you should sub them, and then compare the result with 1e-7 or so.
Second, you missed use "OR" and "AND" operater.

C语言编程实例14

根据输入的三角形的三条边判断三角形的类型,并输出其面积和类型。

算法思想

首先判断其两边之和是否大于第三边,若大于则判断可以构成三角形,再进一步判断该三角形是什么三角形,并计算这个三角形的面积;否则不能构成三角形。
① 从键盘输入三角形的三条边。
② 判断两边之和是否大于第三边。
③ 若条件成立则判断可构成三角形,计算其面积,并判断其类型;否则判断其不能构成三角形。
④ 在类型判断中首先判断其是否三边相等,条件成立则判断其为等边三角形;否则判断其是否有两边相等,条件成立则判断其为等腰三角形;否则判断其是否有两边的平方和等于第三边的平方,条件成立则判断其为直角三角形;否则判断其为普通三角形。

程序代码

#include <stdio.h>#include <math.h>int main(){ float a,b,c; float s,area; printf("请输入三角形的三条边:\n"); scanf("%f,%f,%f",&a,&b,&c); if(a+b>c&&b+c>a&&a+c>b) { s=(a+b+c)/2; area=(float)sqrt(s*(s-a)*(s-b)*(s-c)); printf("三角形的面积是:%f\n" ,area); if(a==b&&a==c) printf("三角形是等边三角形\n"); else if(a==b||a==c||b==c) 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"); return 0;}

调试运行结果

输入为 3,3,3 时,对应的输出情况如下所示:

请输入三角形的三条边:3,3,3三角形的面积是:3.897114三角形是等边三角形

输入为 3,4,5 时,对应的输出情况如下所示:

请输入三角形的三条边:3,4,5三角形的面积是:6.000000三角形是直角三角形

总结

① 、在本实训之前必须知道三角形的相关知识,比如,怎么判断输入的三边是否能构成三角形、三角形的面积计算方法等。

② 、要注意逻辑运算符“&&”和“||”的使用,当需要同时满足多个条件时,使用“&&”运算符;而当只需满足多个条件中的一个时,使用“||”运算符。


扫码关注我,手把手带你撸代码





如果你觉得文章让您增长了知识,

点击右下方的“在看

  

以上是关于c语言编写程序:输入三角形的三条边,判断它们能否构成三角形,若能则指出何种三角形。的主要内容,如果未能解决你的问题,请参考以下文章

c语言代码,输入三条边看能不能构成三角形

C语言编程实例14

C语言 编写函数,输入三角形三边之长,求三角形面积。

用python判断三角形能否成立

C语言试题七十二之请编写函数判断三角形的类型,并输出其面积和类型。

C语言试题七十二之请编写函数判断三角形的类型,并输出其面积和类型。