⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1310.cpp

📁 这是哈尔滨工业大学acmOJ的源代码
💻 CPP
字号:
/*  This Code is Submitted by wywcgs for Problem 1310 on 2006-01-10 at 00:25:55 */ 
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;

const double eps = 1e-1;

inline double dis(double, double, double, double);
inline bool equals(double, double);
int angle(double, double, double);

int main()
{
	double x[3], y[3];

	while(scanf("%lf %lf %lf %lf %lf %lf", 
		&x[0], &y[0], &x[1], &y[1], &x[2], &y[2]) == 6) {
		double a = dis(x[0], y[0], x[1], y[1]), b = dis(x[0], y[0], x[2], y[2]), 
			c = dis(x[1], y[1], x[2], y[2]);
		double l = max(max(a, b), c);
		if(a+b+c-2*l < eps) printf("Not a Triangle\n");
		else if(equals(a, b) && equals(b, c)) printf("Equilateral Acute\n");
		else {
			double s1, s2;
			if(equals(a, l)) s1 = b, s2 = c;
			else if(equals(b, l)) s1 = a, s2 = c;
			else if(equals(c, l)) s1 = a, s2 = b;
			int as = angle(s1, s2, l);
			if(equals(a, b) || equals(a, c) || equals(b, c)) printf("Isosceles ");
			else printf("Scalene ");
			if(as == 0) printf("Right\n");
			else if(as < 0) printf("Acute\n");
			else printf("Obtuse\n");
		}
	}
	printf("End of Output\n");
	
	return 0;
}

inline double dis(double xa, double ya, double xb, double yb)
{
	return sqrt((xa-xb)*(xa-xb)+(ya-yb)*(ya-yb));
}
inline bool equals(double d1, double d2)
{
	return fabs(d1-d2) < eps;
}
int angle(double a, double b, double c)
{
	double p = a*a + b*b - c*c;
	if(equals(p, 0)) return 0;
	else if(p > eps*eps) return -1;
	else return 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -