Найти площадь пятиугольника - C (СИ) (77839)
Формулировка задачи:
Задача на Си:
Даны действительные числа a,b,c,d. Найти площадь пятиугольника,изображенного на рисунке.(Определить процедуру вычисления площади треугольника по трем его сторонам)
Написал так:
Можно ли как то упростить код?
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
bool rez;
//Проверка на существование треугольника
int check(float z, float x, float w){
if ( (z>0)&&(x>0)&&(w>0) ){
if ((z+x)>w&&(z+w)>x&&(x+w)>z) rez = true;
else rez = false;
} else rez = false;
return rez;
}
//Вычисление площади треугольника
float pt(float z, float x, float w){
float p = (z + x + w)/2;
float pl3 = sqrt((p*(p-z)*(p-x)*(p-w)));
return pl3;
}
void main(){
float pl5, a, b, c, d;
scanf("%f%f%f%f", &a,&b,&c,&d);
if ( check(1, 2, a)==1&&check(2, 2.5, b)==1&&check(2.5, c, d)==1 ){
pl5 = pt(1, 2, a) + pt(2, 2.5, b)+ pt(2.5, c, d);
printf("%f", pl5);
} else printf("%d", rez);
_getch();
}Решение задачи: «Найти площадь пятиугольника»
textual
Листинг программы
if ( check(1, 2, a) && check(2, 2.5, b) && check(2.5, c, d))