Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Треугольник С++ (http://www.tehnari.ru/f41/t92451/)

zwenya 19.11.2013 23:13

Треугольник С++
 
Сумма катетов прямоугольного треугольника постоянна и равна m. (x+y=m)
Написать функцию, которая определяет треугольник с наименьшей длиной гипотенузы. x и y представить в виде массивов из 1000 элементов

помогите,пожалуйста, с заданием. Заранее спасибо.

grelly 20.11.2013 08:43

как то так:
Код:

#include <math.h>
///////////////////////////////////////////////////////////////////////////////////////////
/// [in]
/// double m, double masX[], double masY[], int size //m - сумма катетов, masX и masY - массивы катетов, size - размер массивов
/// [out]
/// int& indexX, int& indexY // переменные, в которые записываются значения индексов массивов катетов
///////////////////////////////////////////////////////////////////////////////////////////
void CalcMinHyp(double m, double masX[], double masY[], int size, int& indexX, int& indexY)

  indexX = -1;//после вызова функции сделать проверку что indexX и indexY не равны -1. если равны значит ошибка
  indexY = -1;
  double minHyp = -1, hyp;
  for(unsigned int i = 0; i < size; i++)
    for(unsigned int j = 0; j < size; j++)
    {
      if((masX[i] + masY[j]) == m)// проверку на размер массивов нужно сделать обязательно!!! иначе программа вылетит с исключением
      {
          hyp = sqrt(masX[i] * masX[i] + masY[j] * masY[j]);//рассчет гипотенузы (для использования функции sqrt нужно включить файл math.h - см. первую строку)
        if(minHyp < 0 || hyp < minHyp)//первое условие для случая первого вычисления гипотенузы
        {
          minHyp = hyp;
          indexX = i;
          indexY = j;
        }
      }
    }
}



Часовой пояс GMT +4, время: 20:59.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.