1. 任意输入三个数(不一定是整数),看是否构成三角形的三个边;如果不...

发布网友 发布时间:2024-10-23 21:25

我来回答

3个回答

热心网友 时间:2024-10-31 16:00

//C++编写的
// triangle.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <cmath>
#include <iomanip>
#define PI 3.14159265358979323846

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
double bc[3];
cout<<"请输入第1个数字"<<endl;
cin>>bc[0];
cout<<"请输入第2个数字"<<endl;
cin>>bc[1];
cout<<"请输入第3个数字"<<endl;
cin>>bc[2];
double a,b,c;
int maxIndex=0;
//令C为最大边 A,B为另外两边
for(int i=1;i<3;i++)
{
if(bc[i]>bc[maxIndex])
maxIndex=i;
}
c=bc[maxIndex];
bool j=false;
for(int i=0;i<3;i++)
{
if(i!=maxIndex)
{
if(j)
{
b=bc[i];
}
else
{
a=bc[i];
j=true;
}
}
}
//判断是否是三角形
if(c<a+b)
{
int c1=0,c2=0;
if(a==b&&a==c)
//cout<<"等边三角形"<<endl;
c2=3;
else if(a==b||a==c||b==c)
c2=2;
else
c2=0;
double angle=0;
double CosC=0;
CosC=(pow(a,2)+pow(b,2)-pow(c,2))/(2*a*b);
angle =acos(CosC)/PI*180;
/*if(pow (c,2)==pow (a,2)+pow(b,2))
c1=2;
else if(pow (c,2)>pow (a,2)+pow(b,2))
c1=1;
else
c1=3;*/
if(90==(int)angle)
c1=2;
else if(90>angle)
c1=1;
else
c1=3;
if(c2==3)
{
cout<<"等边三角形"<<endl;
cout<<"此三角形最大角为60°"<<endl;
}
else
{
int cm=c1+c2;
switch(cm)
{
case 1:
cout<<"锐角三角形"<<endl;
break;
case 2:
cout<<"直角三角形"<<endl;
break;
case 3:
if(2==c2)
{
cout<<"等腰锐角三角形"<<endl;
break;
}
else
{
cout<<"钝角三角形"<<endl;
break;
}
case 4:
cout<<"等腰直角三角形"<<endl;
break;
case 5:
cout<<"等腰钝角三角形"<<endl;
break;
default:
cout<<"出错啦!!!!"<<endl;
break;
}
cout<<setprecision(4)<<"此三角形最大角为"<<angle<<"°"<<endl;
}
}
else
{
cout<<"输入的3条边无法构成三角形"<<endl;
}
system("pause");
return 0;
}

热心网友 时间:2024-10-31 16:01

VB编程吗??

热心网友 时间:2024-10-31 15:59

3,4,5.直角三角形
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com