C++ даны действительные числа a.b.c.d Найти площадь пятиугольника ,(определить функцию для расчёта площади треугольника по трём сторонам). С использованием функции в задании картинка пятиугольника
что-то такое получилось, но выходит S=-nan. в чем ошибка?
#include
#include
using namespace std;
double Plos(float a, float b, float c)
{
double P = ((double)a + (double)b+ (double)c) / 2;
double S = sqrt(P * (P - (double)a) * (P - (double)b) * (P - (double)c));
return S;
}
int main()
{
setlocale(LC_ALL, "Russian");
double S = 0.0;
float a, b,c, l=1;
float f=2, g=2.5; ;
cout << "Введите d,c,2.5 (через пробел): ";
cin >> a >> b >> c;
S += Plos(a,b,c);
cout << "Введите 2, b (через пробел): ";
cin >>a >> b;
S += Plos(a,b,c);
cout << "Введите 1,a (через пробел): ";
cin >> b >> c;
S += Plos(a, b, c);
cout << "S = " << S << endl;
return 0;
}
Ответы на вопрос:
1) зачем тебе передавать в функцию флоат, а потом это кастовать к даблу, когда можно сразу передавать дабл
2) на кой тебе setlocale в этой задаче
3) почему ты пытаешься считать из консоли 7 аргументов, когда в задаче дается лишь 4
4) много лишних переменных, да еще и разных типов, которые ты пытаешься использовать в одних выражениях
5) Ты вообще понимаешь почему в этой задаче требуется прописать функцию для нахождения площади треугольника? Если да, то почему ты каждый раз вызываешь функцию подсчета площади от одних и тех же трех отрезков, да еще и не образующих треугольник...
#include <iostream>
#include <cmath>
using namespace std;
double heron(double a_, double b_, double c_){
double p = (a_ + b_ + c_) / 2;
return sqrt(p * (p - a_) * (p - b_) * (p - c_));
}
void solve() {
double a, b, c, d;
cout << "a =\n";
cin >> a;
cout << "b =\n";
cin >> b;
cout << "c =\n";
cin >> c;
cout << "d =\n";
cin >> d;
cout << "S = " << heron(a, 1, 2) + heron(b, 2, 2.5) + heron(c, d, 2.5);
}
int main(){
solve();
}
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
zvezdaanara26.08.2020 14:01
-
sonka1001p0arxp29.06.2020 13:46
-
jesussoul17.09.2021 11:19
-
raksanaasifovna22.04.2020 22:13
-
spooknook09.03.2020 15:13
-
МарианМариан17.03.2020 16:39
-
kseniasergeeva1010.01.2020 23:33
-
yaremhykv0427.06.2021 15:45
-
KristinkaVayyyys22.01.2022 06:13
-
Анюта3Б26.06.2021 10:15
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.