Регистрация
27 Май 2013
Сообщения
82
Репутация
0
Спасибо
0
Монет
0
Разработать программу, которая считывает с клавиатуры данные треугольника и отображает площадь каждого треугольника.

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(" Introdu datele triunghiului: ");
for(i=0;i<n;i++)
{
printf(" Triunghi [%d]",i+1);
printf(" Lungimea laturilor a,b si c: ");
scanf("%d%d%d",&triunghi.a,&triunghi.b,&triunghi.c);
printf(" Introdu 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 ",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 Имеет площадь: %.4f ", 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 не существует! ", 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(); }
 
Назад
Сверху