C程序设计问题:根据输入的三角形的三边判断是否能组成三角形,若...
发布网友
发布时间:2024-10-24 15:06
我来回答
共4个回答
热心网友
时间:2024-11-02 17:15
在几何中,已知三边的长,求三角形的面积,我们都知道使用求积公式:
△=√[s(s-a)(s-b)(s-c)]
其中s=1/2(a+b+c)
这个公式一般称之为海伦公式,因为它是由古希腊的著名数学家海伦首先提出的。有人认为阿基米德比海伦更早了稳这一公式,但是由于没有克凿的证据而得有到数学界的承认。
#include<stdio.h>
#include <math.h>
int main()
{
double a,b,c;
scanf("%f%f%f",&a,&b,&c);
// 1. 先判断3边 边长是否满足3角形的条件
if(a+b<=c|| a+c<=b && b+c<=a)
{
printf("不可以组成三角形\n");
return 0;
}
// 2. 根据公式求三角形的面积
float s = 1/2 *(a+b+c);
float mianji = sqrt(s*(s-a)*(s-b)*(s-c));
printf("三角形面积: %f\n", mianji);
// 3. 三角的类型都包括: 等腰, 等边, 直角
if(a==b || a== c || b==c)
{
printf("三角类型: 等腰\n");
}
if(a==b && a== c && b==c)
{
printf("三角类型: 等边\n");
}
float a2 = a*a;
float b2 = b*b;
float c2 = c*c;
if(a2+b2 == c2 || a2+c2==b2 || b2+c2==a2)
{
printf("三角类型: 直角\n");
}
return 0;
}
热心网友
时间:2024-11-02 17:14
#include<stdio.h>
void main()
{
int i,j;
float a[3],t,k;
printf("请输入三角形三边长:");
scanf("%f%f%f",&a[0],&a[1],&a[2]);
if(a[0]+a[1]>a[2]&&a[0]+a[2]>a[1]&&a[1]+a[2]>a[0])
printf("可以组成三角形\n");
else
printf("不可以组成三角形\n");
for(i=0;i<3;i++)
for(j=2;j>i;j--)
if(a[i]>a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
k=a[0]*a[0]+a[1]*a[1]-a[2]*a[2];
if(k>0){
if(((a[0]==a[1])&&(a[1]!=a[2]))||((a[2]==a[0])
&&(a[1]!=a[0]))||((a[2]==a[1])&&(a[1]!=a[0])))
printf("可以组成锐角等腰三角形\n");
else if((a[0]==a[1])&&(a[1]==a[2]))
printf("可以组成等边三角形\n");
else printf("可以组成锐角三角形\n");
}
else if(k==0){
if(a[0]=a[1])
printf("可以组成等腰直角三角形\n");
else printf("可以组成直角三角形\n");
}
else {
if(a[0]==a[1])
printf("可以组成等腰钝角三角形\n");
else printf("可以组成钝角三角形\n");
}
}
热心网友
时间:2024-11-02 17:13
#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,s,area;
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
printf("可以组成三角形\n");
s=1.0/2.0(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(/"area is %f",area);
if(a==b==c)
printf("是等边三角形“);
if(a==b!=c||a==c!b||b==c!=a)
printf("是等腰三角形“);
if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
printf("是直角三角形“);
else
printf("不可以组成三角形\n");
}
热心网友
时间:2024-11-02 17:13
#include<iostream>
#include<math.h>
using namespace std;
void sort(float *A,float *B,float *C)
{
float max;
if((*A)<(*B))
{
max=(*A);
*A=*B;
*B=max;
}
if(*A<*C)
{
max=*A;
*A=*C;
*C=max;
}
}
void main()
{
float a,b,c,S,p;
cout<<"输入三角形第一边:";
cin>>a;
cout<<endl;
cout<<"输入三角形第二边:";
cin>>b;
cout<<endl;
cout<<"输入三角形第三边:";
cin>>c;
cout<<endl;
if(a-b-c<0&&b-a-c<0&&c-a-b<0)//判断能否形成三角形
{
if(a==b||a==c||b==c)//判断是否等腰
{
if(a==b&&a==c)//判断是否为正三角形
cout<<"这个三角形为正三角形"<<endl;
else
cout<<"这个三角形为等腰三角形"<<endl;
}
sort(&a,&b,&c);
if(a*a>b*b+c*c)
cout<<"这个三角形为钝角三角形!"<<endl;//钝角
if(a*a<b*b+c*c)
cout<<"这个三角形为锐角三角形"<<endl;//锐角
if(a*a==b*b+c*c)
cout<<"这个三角形为直角三角形"<<endl;//直角
p=(a+b+c)/2;
S=sqrt(p*(p-a)*(p-b)*(p-c));//求面积的公式。
cout<<"这个三角形面积为:"<<S<<endl;
}
else
cout<<"这三条边不能构成三角形!"<<endl;
END:
system("pause");
}