Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

交了4次不想做了,反正水题,大家帮忙看下?

Posted by KatrineYang at 2017-01-21 05:52:14 on Problem 1586
#include <iostream>
#include <stdio.h>
#include <cmath>
#include <algorithm>
using namespace std;

const double PI = 3.141592654;

struct pt{
	double x,y;
};

double dist(pt& p1, pt& p2){
	return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}

double jj(pt& p1, pt& p2, pt& p3){
	return acos(((p1.x-p2.x)*(p3.x-p2.x)+(p1.y-p2.y)*(p3.y-p2.y))/dist(p1,p2)/dist(p3,p2))*180.0/PI;
}

double mx(double d1, double d2){
	return (d1>d2)?d1:d2;
}

double mx(double d1, double d2, double d3){
	return mx(mx(d1,d2),d3);
}

int main() {
	pt p1,p2,p3;
	while(scanf("%lf%lf%lf%lf%lf%lf",&p1.x,&p1.y,&p2.x,&p2.y,&p3.x,&p3.y) == 6){
		double j1 = jj(p1,p2,p3), j2 = jj(p2,p3,p1), j3 = jj(p3,p1,p2);
		double b1 = dist(p1,p2), b2 = dist(p2,p3), b3 = dist(p3,p1);
		double mxj = mx(j1,j2,j3);
		if(mxj > 179.99) cout << "Not a Triangle" << endl;
		else{
			double bs[3];
			bs[0] = b1, bs[1] = b2, bs[2] = b3;
			sort(bs, bs+3);
			if(bs[2]-bs[0] < 0.1) cout << "Equilateral ";
			else if(bs[1]-bs[0] < 0.1 || bs[2]-bs[1] < 0.1) cout << "Isosceles ";
			else cout << "Scalene ";
			if(mxj > 90.1) cout << "Obtuse";
			else if(mxj < 89.9) cout << "Acute";
			else cout << "Right";
			cout << endl;
		}
	}
	cout << "End of Output" << endl;
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator