Разработать программу, которая считывает с клавиатуры данные треугольника и отображает площадь каждого треугольника.
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();
}
#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();
}
Какие именно "данные треугольника" должна считывать программа, и что за переменная punct?
Похожие вопросы
- Помогите доделать программу пожалуйста ) На языке Си
- Помогите написать пару программ на СИ
- Программа на Си
- Помогите с программой на си! Программа в описании
- Нужна помощь)) Есть условие задачи для создания программы на СИ++
- Требуется помощь с программа на СИ
- Помогите доделать программу
- Помогите пожайлуста доделать программу в паскале! Не получается ((
- Помогите пожалуйста составить программу на СИ++. Заранее всем БЛАГОДАРЕН!
- Помогите исправить ошибку в программе на Си
2. Вот меня тоже это интересует что это такое! punct - точка