как то так:
Код:
#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;
}
}
}
}