В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
lerak1301
lerak1301
04.11.2022 23:47 •  Информатика

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;
}


C++ даны действительные числа a.b.c.d Найти площадь пятиугольника ,(определить функцию для расчёта п

Показать ответ
Ответ:
anton1oleynik
anton1oleynik
24.03.2022 06:00

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();

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота