Форум программистов, компьютерный форум, киберфорум
Наши страницы

Найти треугольник с наибольшей площадью с вершинами в точках заданных координатами (подправить код) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Шифровка/дешифровка файла решеткой Кардано http://www.cyberforum.ru/cpp-beginners/thread881460.html
не получается шифровать дешифровать файл с помощью решетки Кардано, кому не трудно, подскажите, что изменить #include <iostream> #include <conio.h> #include<stdio.h> #include<stdlib.h> using...
C++ Функция поиска макс прогресии в листе Доброго времени суток, есть вот такая функция int max(node *ptr){ if(ptr == 0) return 0; int count, tmp; tmp = count= 0; while (ptr!=0) http://www.cyberforum.ru/cpp-beginners/thread881455.html
Найти сумму эл-тов массива, подходящих по условиям C++
В Visual Studio 2010 найти сумму элементов массива из 10 элементов, вводимых пользователем, которые подходят по 3 признакам: 1.) делятся на 7 2.) заканчиваются на 3 3.) состоит из 4 чисел С моими...
C++ Кодировка при выводе в файл из system()
Ув. форумчане! Прошу подсказать по вопросу о кодировке. В поиск прошу меня не отсылать ибо ищу уже неделю. Суть проблемы: требуется вывести в файл: - модель процессора - версию ОС - объем ОЗУ...
C++ Error C3861: _T: идентификатор не найден http://www.cyberforum.ru/cpp-beginners/thread881441.html
Код ниже в картинке. Урок NeHe по инициализации окна Windows
C++ как подключить аудио файл на с++? покажите на примере как это делается заранее спс подробнее

Показать сообщение отдельно
GrShoot
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 7

Найти треугольник с наибольшей площадью с вершинами в точках заданных координатами (подправить код) - C++

28.05.2013, 01:35. Просмотров 1334. Ответов 3
Метки (Все метки)

Доброго времени суток!

Условие таково:

Дано натуральное число n. C помощью двумерного действительного числового массива [Xi,j]i=1,2; j=1,...,n
на плоскости задано n точек такБ что X1,j и X2,j- координаты j-й точки.
Найти треугольник наибольшей площади с вершинами в этих точках.



Собственно вот что я сделал:
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include <iostream>
#include <math.h>
#include <stdlib.h>
 
 
using namespace std;
 
void input(int **mas, const size_t n){
 
  for(int i = 0; i < n; i++)
  {cout<<"введите координаты точки "<<i+1<<endl;
 
    for(int j = 0; j < 2; j++){
      cin >> mas[i][j];
    }
  }
}
 
void output(int **mas,double mas2, const size_t n){
 cout<<"Координаты введеных точек:"<<endl;
  for(int i = 0; i < n; i++){
 
    for(int j = 0; j < 2; j++)
      cout << mas[i][j] << ' ';
      cout << '\n';
 
 
 
  }
 
}
 
//нахождение площади треугольника по формуле Герона
float square (float a, float b, float c)
{
 
   float p = (a + b + c)/2;
   float s = sqrt ( p*(p-a)*(p-b)*(p-c) );
   
 
   return s;
}
 
//проверка на существование треугольника из заданых отрезков
bool istriangle (float a, float b, float c)
{
   if (a >= b+c) return 0;
   if (b >= a+c) return 0;
   if (c >= a+b) return 0;
 
   return 1;
}
 
int main()
{  setlocale(LC_CTYPE,"Russian");
   cout<<"Введите количество точек"<<endl;
 
    int n,i,j;
    cin>>n;
    if (n<3)
        cout<<"Неверное количество точек";
     else{
    int **mas;
    mas=new int*[n];
    for ( i=0;i<n;i++)
    mas[i]=new int[n];
    double *mas2=new double[n];
    input(mas,n);
    output(mas,*mas2,n);
    double maxsquare=0;
    double a,b,c;
 
    for(i=0;i<n;i++)
    {if (i!=n-1)
      mas2[i]=sqrt(pow(abs(mas[i][0]-mas[i+1][0]),2)+pow(abs(mas[i][1]-mas[i+1][1]),2));
      else mas2[i]=sqrt(pow(abs(mas[i][0]-mas[0][0]),2)+pow(abs(mas[i][1]-mas[0][1]),2));
    }
 
 
 
    for(int i = 0; i < n-3; ++i)
     { a=mas2[i]; b=mas2[i+1]; c=mas2[i+3];
    
       if ( istriangle (a, b, c) )
        {
         //и его площадь больше максимальной
         //значит его площадь максимальная
        if ( square (a, b, c) > maxsquare )
        {
            maxsquare = square (a, b, c);
            cout << "Максимальная площадь треугольника: " << maxsquare << endl;
        }
        }
        else cout<<"Треугольник не существует"<<endl;
       }
 
}}


При любых входных данных треугольник не существует(((
уже 3тий день пытаюсь разобраться в чем проблема(((
Помогите пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.