• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Треугольник С++

  • Автор темы Автор темы zwenya
  • Дата начала Дата начала

zwenya

Ученик
Регистрация
4 Апр 2013
Сообщения
9
Реакции
0
Баллы
0
Треугольник С++

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

помогите,пожалуйста, с заданием. Заранее спасибо.
 
как то так:
Код:
#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;
	}
      }
    }
}
 
Назад
Сверху