Вычислить площадь треугольника - C (СИ) (148967)

Узнай цену своей работы

Формулировка задачи:

Заданные вещественные числа, которые определяют отрезки a, b, c и d. Для каждой тройки тех отрезков, из которых можно построить треугольник, вычислить площадь данного треугольника. Вычисление площади треугольника описать с помощью функции языка С. Вот что написал:
#include <stdio.h>
#include <conio.h>
#include <Windows.h>
#include <math.h>

float func(void)
{
    int a; int b; int c; int d;
    float S,p;
    printf("Введіть сторони трикутника\n");
    scanf("%d%d%d%d", &a,&b,&c,&d);

    if (a > 0 && b > 0 && c > 0 && d < 0)
        {
            //float S;
            p = (a + b + c)/2;
            S = sqrt(p*(p - a)*(p - b)*(p - c));
            goto label;
        }
    if (a > 0 && b > 0 && c < 0 && d > 0 )
        {
            //float S;
            p = (a + b + d)/2;
            S = sqrt(p*(p - a)*(p - b)*(p - d));
            goto label;
        }
    if (a > 0 && b < 0 && c > 0 && d > 0)
        {
            //float S;
            p = (a + c + d)/2;
            S = sqrt(p*(p - a)*(p - c)*(p - d));
            goto label;
        }
    if (a < 0 && b > 0 && c > 0 && d > 0 )
        {
            //float S;
            p = (b + c + d)/2;
            S = sqrt(p*(p - b)*(p - c)*(p - d));
            goto label;
        }
     label : return S;
}
 
int main(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);

    func();
    float S;
    printf("Площа = %f", S);
 
    printf("Для продовження нажміть на будь-яку клавішу....");
    getch();
    return 0;
}
Знаю что тут много лишнего, но я не могу понять как можно решить проще.

Решение задачи: «Вычислить площадь треугольника»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <Windows.h>
#include <math.h>
 
float sq(float a, float b, float c)
{
    float p = (a + b + c)/2;
    return sqrt(p*(p - a)*(p - b)*(p - c));
}
 
int main(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    float a, b, c, d;
 
    printf("Введіть сторони трикутника\n");
    scanf("%f%f%f%f", &a,&b,&c,&d);
 
    printf("Площа = ");
    
    if (a > 0 && b > 0 && c > 0)
        printf("%f ", sq(a, b, c));
    if (a > 0 && b > 0 && d > 0 )
        printf("%f ", sq(a, b, d));
    if (a > 0 && c > 0 && d > 0)
        printf("%f ", sq(a, c, d));
    if (b > 0 && c > 0 && d > 0 )
        printf("%f ", sq(b, c, d));
 
    printf("Для продовження нажміть на будь-яку клавішу....");
    getch();
 
    return 0;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы