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

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

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

Заданные вещественные числа, которые определяют отрезки a, b, c и d. Для каждой тройки тех отрезков, из которых можно построить треугольник, вычислить площадь данного треугольника. Вычисление площади треугольника описать с помощью функции языка С. Вот что написал:
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <Windows.h>
  4. #include <math.h>
  5.  
  6. float func(void)
  7. {
  8. int a; int b; int c; int d;
  9. float S,p;
  10. printf("Введіть сторони трикутника\n");
  11. scanf("%d%d%d%d", &a,&b,&c,&d);
  12.  
  13. if (a > 0 && b > 0 && c > 0 && d < 0)
  14. {
  15. //float S;
  16. p = (a + b + c)/2;
  17. S = sqrt(p*(p - a)*(p - b)*(p - c));
  18. goto label;
  19. }
  20. if (a > 0 && b > 0 && c < 0 && d > 0 )
  21. {
  22. //float S;
  23. p = (a + b + d)/2;
  24. S = sqrt(p*(p - a)*(p - b)*(p - d));
  25. goto label;
  26. }
  27. if (a > 0 && b < 0 && c > 0 && d > 0)
  28. {
  29. //float S;
  30. p = (a + c + d)/2;
  31. S = sqrt(p*(p - a)*(p - c)*(p - d));
  32. goto label;
  33. }
  34. if (a < 0 && b > 0 && c > 0 && d > 0 )
  35. {
  36. //float S;
  37. p = (b + c + d)/2;
  38. S = sqrt(p*(p - b)*(p - c)*(p - d));
  39. goto label;
  40. }
  41. label : return S;
  42. }
  43. int main(void)
  44. {
  45. SetConsoleCP(1251);
  46. SetConsoleOutputCP(1251);
  47.  
  48. func();
  49. float S;
  50. printf("Площа = %f", S);
  51. printf("Для продовження нажміть на будь-яку клавішу....");
  52. getch();
  53. return 0;
  54. }
Знаю что тут много лишнего, но я не могу понять как можно решить проще.

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <Windows.h>
  4. #include <math.h>
  5.  
  6. float sq(float a, float b, float c)
  7. {
  8.     float p = (a + b + c)/2;
  9.     return sqrt(p*(p - a)*(p - b)*(p - c));
  10. }
  11.  
  12. int main(void)
  13. {
  14.     SetConsoleCP(1251);
  15.     SetConsoleOutputCP(1251);
  16.  
  17.     float a, b, c, d;
  18.  
  19.     printf("Введіть сторони трикутника\n");
  20.     scanf("%f%f%f%f", &a,&b,&c,&d);
  21.  
  22.     printf("Площа = ");
  23.    
  24.     if (a > 0 && b > 0 && c > 0)
  25.         printf("%f ", sq(a, b, c));
  26.     if (a > 0 && b > 0 && d > 0 )
  27.         printf("%f ", sq(a, b, d));
  28.     if (a > 0 && c > 0 && d > 0)
  29.         printf("%f ", sq(a, c, d));
  30.     if (b > 0 && c > 0 && d > 0 )
  31.         printf("%f ", sq(b, c, d));
  32.  
  33.     printf("Для продовження нажміть на будь-яку клавішу....");
  34.     getch();
  35.  
  36.     return 0;
  37. }

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


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

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

12   голосов , оценка 3.917 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы