Тема: Некоректні прості обчислення
Треба створити программу, яка будет запитувати у користувача довижну сторін трикутника. Після цього программа повинна вивести на екран периметр трикутника, площу та кути, для яких потрібно розробити функциії.
З написанням программи, проблем не виявилось ніяких, АЛЕ при введені вхідних даних, наприклад, а=26, b=30, в=28; результатом будет: "-nan(ind)". Якщо друге значення, наприклад, a=10, b=14, c=2 - дурно-велике число.
Один й той самий результат виводить cos а,b,c.
Що треба змінити в цьому коді.
#include <stdio.h>
#include <math.h>
#include <Windows.h>
double SemiPerimeter(double a, double b, double c) {
double sPerimeter = (a + b + c) / 2;
return sPerimeter;
}
double Square(double SemiPerimeter, double a, double b, double c) {
double Square_Geron = sqrt(SemiPerimeter*(SemiPerimeter - a)*(SemiPerimeter - b)*(SemiPerimeter - c));
return Square_Geron;
}
double Angle(double a, double b, double c) {
double Angle_CosA = cos((a*a - b*b + c*c) / 2*(b*c));
double Angle_CosB = cos((a*a - b*b + c*c) / 2*(a*c));
double Angle_CosC = cos((a*a - b*b + c*c) / 2*(a*b));
return Angle_CosA;
return Angle_CosB;
return Angle_CosC;
}
main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
double Square_of_triangle, a, b, c;
double CosA, CosB, CosC;
printf("Введіть величину сторони a: ");
scanf_s("%f", &a);
printf("Введіть величину сторони b: ");
scanf_s("%f", &b);
printf("Введіть величину сторони c: ");
scanf_s("%f", &c);
Square_of_triangle = Square(a, b, c, SemiPerimeter(a, b, c));
printf("\tПлоща трикутника за формулою Герона: %f\n\n", Square_of_triangle);
CosA = Angle(a, b, c);
printf("Кyт a дорівнює: %f\n", CosA);
CosB = Angle(a, b, c);
printf("Кyт a дорівнює: %f\n", CosB);
CosC = Angle(a, b, c);
printf("Кyт a дорівнює: %f\n", CosC);
}
ДЯКУЮ!