C语言三角形问题
发布网友
发布时间:2022-04-21 23:40
我来回答
共2个回答
热心网友
时间:2023-07-18 09:47
一、三角形问题:
(1)
#include<stdio.h>
#include<math.h>
void
method(float
a,float
b,float
c)
{
float
p;
if((((a+b)>=c)&&(fabs(a-b)<c))||
(((b+c)>=a)&&(fabs(b-c)<a))||
(((a+c)>=b)&&(fabs(a-c)<b)))
{
if(a==b||a==c||b==c)
{
if(a==b&&a==c&&b==c)
printf("等边三角形\n");
else
printf("等腰三角形\n");
}
else
printf("一般三角形\n");
}
else
{
printf("不能构成三角形\n");
}
}
main()
{
float
a,b,c;
intflag=0;
printf("请选择要进行的操作\n1
创建一个三角形.\n0
退出\n");
scanf("%d",&flag);
while(flag==1)
{
printf("请输入三角形的三条边长:\n");
scanf("%f",&a);
scanf("%f",&b);
scanf("%f",&c);
if((a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100))
method(a,b,c);
else
printf("请输入1-100之间的数作为边长!");
printf("请选择要进行的操作\n1
创建一个三角形.\n0
退出\n");
scanf("%d",&flag);
}
}
(2)
#include
<stdio.h>
void
main()
{
float
a,b,c;
printf("请输入三角形的三条边长a,b,c:\n");
scanf("%f",&a);
scanf("%f",&b);
scanf("%f",&c);
if((a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100))
{
if(a+b<c||a+c<b||b+c<a)
/*判断是否能构成三角形*/
printf("非三角形!\n");
else
if((a==b&&(a!=c))||(a==c&&(b!=c))||(b==c&&(a!=c)))/*判断是否为等腰三角形*/
printf("等腰三角形\n");
else
if(a==c
&&
a==b)
/*判断是否为等边三角形*/
printf("等边三角形\n");
else
printf("一般三角形!\n");
}
else
printf("请输入1-100之间的数!\n");
}
测试数据:(1)3,3,4;(2)3,3,3(3)1,2,3(4)-1,0,1(5)3.5,4,5
热心网友
时间:2023-07-18 09:48
#
include
<stdio.h>
#
include
<math.h>
void
main()
{
int
a,b,c;
double
q,s;
printf("please
input
a,b
and
c\n");
scanf("%d%d%d",&a,&b,&c);
if(!(a>0
&&
b>0
&&
c>0))
{
printf("a
or
b
or
c
is
negative...");
}
if(!((a+b)>c
&&
(b+c)>a
&&
(a+c)>b))
{
printf("不能构成三角形\n");
}
else
{
q=(a+b+c)/2.0;
s=sqrt(q*(q-a)*(q-b)*(q-c));
if(a==b
||
b==c
||
a==c)
{
if(a==b
&&
b==c)
{
printf("是等边三角形,面积是%lf\n",s);
}
else
{
printf("是等腰三角形,面积是%lf\n",s);
}
}
else
if((a*a+b*b==c*c)
||
(a*a+c*c==b*b)
||
(c*c+b*b==a*a))
{
printf("是直角三角形,面积是%lf\n",s);
}
else
{
printf("是一般三角形,面积是%lf\n",s);
}
}
}