POJ 1586 Three Sides Make a Triangle G++ 几何 巧妙 背

本文介绍了一个使用C++编写的程序,该程序通过输入三角形三个顶点的坐标来判断三角形的类型(等边、直角、钝角等)。利用欧几里得距离计算边长,并采用余弦定理来确定角度类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
using namespace std;
//英语     抄博友程序    exp都是0.1ac    都是0.001wa     几何      巧妙      背 
double ex=0.1; 
double dis(double x1,double y1, double x2,double y2)
{
	return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
int main()
{
	char str[1100];	
	while(gets(str))
	{
		/*
		double x1,y1,x2,y2,x3,y3;//自己写的wa 
		cin>>x1;
		if(x1==-1)
		{
			break;
		}
		cin>>y1>>x2>>y2>>x3>>y3;*/
        int cnt=0;int len=strlen(str);//抄博友程序  ac 
        for(int i=0;i<len;i++)
            if(str[i]==' ') cnt++;
        if(cnt<5)
        {
            puts("End of Output");
            break;
        }
        double x1,y1,x2,y2,x3,y3;
        sscanf(str,"%lf %lf %lf %lf %lf %lf %lf",&x1,&y1,&x2,&y2,&x3,&y3);		
		double a,b,c;
		a=dis(x1,y1,x2,y2);
		b=dis(x2,y2,x3,y3);
		c=dis(x1,y1,x3,y3);
		double o=a*a+b*b-c*c;
		double p=b*b+c*c-a*a;
		double q=a*a+c*c-b*b;		
		if((a+b-c)>=0.1 && (a+c-b)>=0.1 && (b+c-a)>=0.1)
		{
			if(fabs(a-b)<=0.1&&fabs(b-c)<=0.1)//抄博友程序
			{
				cout<<"Equilateral Acute"<<endl;//抄博友程序 
			}else if(fabs(a-b)<=0.1||fabs(b-c)<=0.1||fabs(a-c)<=0.1)
			{
				cout<<"Isosceles ";
				if(fabs(o)<=0.1||fabs(p)<=0.1||fabs(q)<=0.1)//抄博友程序  题意 
				{
					cout<<"Right"<<endl;
				}else if(o>0.1&&p>0.1&&q>0.1)
				{
					cout<<"Acute"<<endl;
				}else//抄博友程序 
				{
					cout<<"Obtuse"<<endl;
				}				
			}else
			{
				cout<<"Scalene ";
				if(fabs(o)<=0.1||fabs(p)<=0.1||fabs(q)<=0.1)
				{
					cout<<"Right"<<endl;
				}else if(o>0.1&&p>0.1&&q>0.1)
				{
					cout<<"Acute"<<endl;
				}else
				{
					cout<<"Obtuse"<<endl;
				}
			}			
		}else
		{
			cout<<"Not a Triangle"<<endl;
		}
	}
	//cout<<"End of Output"<<endl; 
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值