Я пытаюсь сделать функцию в C, которая возвращает длину стороны треугольника, противоположную заданному углу, используя Закон косинусов.Написание закона вычисления косинусов
Теперь я получил формулу для работы в Excel и дал правильные результаты. Однако, когда я пробовал это на C, я получаю неправильные результаты, и я не могу понять, почему.
Для испытания у меня есть сторона A как 21.1, sideB как 19 и угол между ними как 40 градусов. Теперь ответ должен быть 14.9, как я получаю в excel. однако в C я получаю 23.735. Пожалуйста, помогите мне разобраться, где я ошибся
// Find the length of a side of a triangle that is oppisit a given angle using the Law Of Cosine
// for example using an triangle that is 21.1cm on one side, 19 cm on the other and an angle of 40 degreese inbetween then....
// in excel it worked and the formuler was =SQRT(POWER(23.1;2)+POWER(19;2)-2*(23.1)*(19)*COS(40*(3.14159/180))) = 14.9 cm
float my_Trig_LawOfCos_OppSideLength(float centerAngle, float sideA, float sideB)
{
float sideLengthPow2= (pow(sideA,2) + pow(sideB,2))) - ((2*sideA*sideB)*cos(centerAngle*(3.14159/180));
float sideLength = sqrt(sideLengthPow2);
return sideLength;
}
Ваши скобки не сбалансированы (мой компилятор просто жаловался, когда я копировал ваш образец). Поэтому я не считаю, что это ваш фактический код. – StoryTeller
[И когда я исправил * эту проблему, я получил ожидаемый результат] (http://ideone.com/Gd4oqO). – StoryTeller
Обратите внимание, что если код использует 'float', он может также использовать функции' float': 'sqrtf()', 'cosf()' и т. Д. – chux