Вычислить площадь треугольника - 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;
}