13.12.2012, 20:41. Просмотров 899. Ответов 0
Даны координаты вершин пяти треугольников. Определить, какой из них имеет большую площадь. Упорядочить площади по возрастанию и вывести на печать.
Осталось расположить площади в порядке возрастания, помогите, кто чем может. Заранее благодарю
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| #include "stdafx.h"
#include<iostream>
#include <locale.h>
using namespace System;
using namespace std;
double starline ();
int main()
{
double S[5];
setlocale(LC_ALL, "Russian");
//блок ввода координат вершин 1 треугольника ABC
for (int i=0; i<5;i++)
{
cout<<"Введите координаты треугольника\t"<<i<<"\n";
S[i]=starline();
cout<<"\n";
}
for (int i=0; i<5; i++) for (int j=i+1; j<5; j++)
{
double temp=S[i];
if (S[i]<S[j]) { S[i]=S[j]; S[j]=temp;}
}
cout <<endl;
for (int i=0; i<5;i++) cout<<S[i]<<"\t";cout<<"\n";
Console::ReadKey(false);
return 0;
}
// определение функции starline()
double starline() // заголовок функции
{ double a1, a2, b1, b2, c1, c2;
Console::WriteLine(L"Введите абсциссу точки A");
cin>>a1;
Console::WriteLine(L"Введите ординату точки A");
cin>>a2;
Console::WriteLine(L"Введите абсциссу точки B");
cin>>b1;
Console::WriteLine(L"Введите ординату точки B");
cin>>b2;
Console::WriteLine(L"Введите абсциссу точки C");
cin>>c1;
Console::WriteLine(L"Введите ординату точки C");
cin>>c2;
double a=Math::Sqrt(Math::Pow((a1-b1),2)+Math::Pow((a2-b2),2));
double b=Math::Sqrt(Math::Pow((b1-c1),2)+Math::Pow((b2-c2),2));
double c=Math::Sqrt(Math::Pow((a1-c1),2)+Math::Pow((c2-a2),2));
double p=(a+b+c)/2;
return sqrt(p*(p-a)*(p-b)*(p-c));
Console::ReadKey(false);
} |
|