Вычислить площадь треугольника - 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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д