М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации

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 Найти площадь пятиугольника ,(определить функцию для расчёта п

👇
Ответ:

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

}

4,5(81 оценок)
Открыть все ответы
Ответ:
LOxxx24124
LOxxx24124
23.11.2021
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>

void swap (int *a, int *b)
{
    int temp = *a;
    *a = *b;
    *b = temp;
}
 
void printArray (int arr[], int n)
{
    int i;
    for (i = 0; i < n; i++) printf("%3d ", arr[i]);
    printf("\n");
}
 
void randomize ( int arr[], int n )
{
    long long x;
    asm("rdtsc" : "=A"(x));
    srand(x);
    int i;
    for (i = n - 1; i > 0; i--)
    {
        int j = rand() % (i+1);
        swap(&arr[i], &arr[j]);
    }
}

int main()
{
    setlocale(LC_ALL, "Rus");
    int A[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    int B[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};  
    int C[10];
    
    randomize (A, 10);
    printf("Первый массив:\n");
    printArray(A, 10);
   
    randomize (B, 10);
    printf("Второй массив:\n");
    printArray(B, 10);
    
    int i = 0, j = 0;
    
    for (i = 0; i < 10; i++)
        for (j = 0; j < 10; j++)
            if (A[i] == B[j])
            {
                C[i] = i + j;
                break;
            }
    printf("Третий массив:\n");
     printArray(C, 10);
     
    return 0;
}
4,5(86 оценок)
Ответ:
bdhdt
bdhdt
23.11.2021
PascalABC.NET 3.4

begin
  var m:=ReadInteger('Введите натуральное число не более 3999:');
  if not m.Between(1,3999) then Writeln('Недопустимое значение')
  else
  begin
    Write(m,' = ');
    var ar:array of string:=
        ('M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I');
    var aa:=Arr(1000,900,500,400,100,90,50,40,10,9,5,4,1);
    var n:=0;
    var s:string:='';
    while m>0 do
    begin
      while aa[n]<=m do
      begin
        s+=ar[n];
        m-=aa[n];
      end;
      n+=1
    end;
    Writeln(s)
  end
end.
4,6(83 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ