C语言 三角形

来源:百度知道 编辑:UC知道 时间:2024/06/22 07:27:16
输入三角形三条边的长度,判断它们能否构成三角形,若能则指出是何种三角形:等边、等腰、直角、一般;若不能构成三角形,则输出相应的信息。
我改成liucongshan的以后试了一下,我输入1,2,4是一般三角形
而输入4,2,1是两边之合大与第三边,什么意思?
#include<stdio.h>
void main()
{
float a,b,c;
printf("输入三个数字:");
scanf("%f,%f,%f",&a,&b,&c);
if(a<b+c&&b<a+c&&c<a+c&&a>0&&b>0&&c>0)
{
if(a==b&&b==c)
printf("等边三角形\n");
else if(b==c||a==b||a==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
{
if(a<=0||b<=0||c<=0)
printf("输入数字不合法\n");
else if(a>=b+c||b>=a+c||c>=a+c)
printf("两边之合大于第三边\n");
}
}

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

这段错了,是C<a+b;
自己改;下边也是
if(a>=b+c||b>=a+c||c>=a+c)

是c>=a+b;

其余的没毛病,把这俩段改了就对了

搞程序要心细点啊

修改好了,a==b==c不能这样用a==b!=c也一样,这里的不等于可以省略.a^2改成a*a,a为float型
#include<stdio.h>
void main()
{
float a,b,c;
printf("输入三个数字:");
scanf("%f,%f,%f",&a,&b,&c);
if(a<b+c&&b<a+c&&c<a+c&&a>0&&b>0&&c>0)
{
if(a==b&&b==c)
printf("等边三角形\n");
else if(b==c||a==b||a==c)
printf("等腰三角形\n");
else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
printf("直角三角形");
}
else
{
if(a<=0||b<=0||c<=0)
printf("输入数字不合法\n");
else if(a>=b+c||b>=a+c||c>=a+c)
printf("两边之合大于第三边\n");
}
}

//triangle.c
#include<st