Другие языки программирования и технологии

Как доделать программу в Си?

Разработать программу, которая считывает с клавиатуры данные треугольника и отображает площадь каждого треугольника.

struct punct {
int x,y;}
struct triunghi {
int a,b,c;}

Вообщем я сделал программу, но проблема в том что я нашел что надо вот как то так писать.
S=0.5*fabs(Ax*By+Ay*Cx+Bx*Cy-By*Cx-Cy*Ax-Ay*Bx);

Ну это не работает. Как по другому сделать, кто нибудь знает?

Вот программа:
#include
#include

struct punct{
int x,y;
}punct;
struct triunghi{
int a,b,c;
}triunghi;

int main(void) {
int i,n,a[10],p,s;
float aria;
printf("Introdu numarul de triunghiuri: ");
scanf("%d",&n);
printf("\nIntrodu datele triunghiului: ");
for(i=0;i<n;i++)
{
printf("\nTriunghi [%d]",i+1);
printf("\nLungimea laturilor a,b si c: ");
scanf("%d%d%d",&triunghi.a,&triunghi.b,&triunghi.c);
printf("\nIntrodu x,y: ");
scanf("%d%d",&punct.x,&punct.y);
p=(triunghi.a+triunghi.b+triunghi.c)/2;
aria=sqrt(p*(p-triunghi.a)*(p-triunghi.b)*(p-triunghi.c));
printf("Aria triunghiului [%d] este = %f\n",i+1,aria);
}}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <stdbool.h>
#include <locale.h>

typedef struct {
double a, b, c;
} Triangle;

_Bool exist(double a, double b, double c);
double area(Triangle t);
Triangle create();
void result(Triangle t);
void pause();

int main(void) {
Triangle t = create();
result(t);
pause();
return 0;
}

void result(Triangle t) {
double ar = area(t);
printf("Треугольник со сторонами: %.2f, %.2f, %.2f\nИмеет площадь: %.4f\n", t.a, t.b, t.c, ar);
}

_Bool exist(double a, double b, double c) {
double mx = (a > b) ? (a > c) ? a : c : (b > c) ? b : c;
return a + b + c - mx > mx;
}

double area(Triangle t) {
double p = (t.a + t.b + t.c) / 2;
return sqrt(p * (p - t.a) * (p - t.b) * (p - t.c));
}

Triangle create() {
Triangle t;
double a, b, c;
_Bool good = true;
setlocale(LC_CTYPE, "Russian");
do {
if (!good) printf("Треугольник со стронами %.2f, %.2f, %.2f не существует! \n", a, b, c);
printf("Введите a: ");
scanf_s("%lf", &a);
printf("Введите b: ");
scanf_s("%lf", &b);
printf("Введите c: ");
scanf_s("%lf", &c);
good = exist(a, b, c);
} while (!good);
t.a = a;
t.b = b;
t.c = c;
return t;
}

void pause() {
fflush(stdin);
getchar();
}
ЧБ
Чингиз Байбогиров
68 427
Лучший ответ
Какие именно "данные треугольника" должна считывать программа, и что за переменная punct?
Аманжол Дюсембаев 1, Данные треугольника: a,b,c - это типо размер стороны.
2. Вот меня тоже это интересует что это такое! punct - точка