Определить периметры треугольников, заданных координатами их вершин - C (СИ)
Формулировка задачи:
Доброго времени суток.Помогите пожалуйста с программой,я вроде что-то набросал,но скорее всего это бред.
Собственно само задание:
Определить периметры треугольников, заданных координатами их вершин Xa(5), Xb(5), Xc(5), Ya(5), Yb(5), Yc(5). Длины сторон вычислять с помощью функции.Код:
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <stdlib.h>
int main ()
{
int xa[5],ya[5],xb[5],yb[5],xz[5],yz[5],i,a,b,c,p,z;
for (i=0; i<6;i++)
{
xa[i]=rand()% 100;
ya[i]=rand()% 100;
xb[i]=rand()% 100;
yb[i]=rand()% 100;
xz[i]=rand()% 100;
yz[i]=rand()% 100;
printf ("xa:");
printf ("\n",&xa[i]);
printf ("ya:");
printf ("\n",&ya[i]);
printf ("xb:");
printf ("\n",&xb[i]);
printf ("yb:");
printf ("\n",&yb[i]);
printf ("xz:");
printf ("\n",&xz[i]);
printf ("yz:");
printf ("\n",&yz[i]);
}
printf ("\n\t Function =");
scanf ("%i",&a);
scanf ("%i",&b);
scanf ("%i",&c);
p=a+b+z;
printf ("Perimetr treygolnika = \n ");
getch();
}
double treyg()
{
int xa[5],ya[5],xb[5],yb[5],xz[5],yz[5],i,a,b,c,p,z;
a = sqrt(sqr(xa[i]-xb[i])+sqr(ya[i]-yb[i]));
b = sqrt(sqr(xb[i]-xz[i])+sqr(yb[i]-yz[i]));
z = sqrt(sqr(xa[i]-xz[i])+sqr(ya[i]-yz[i]));
}
да и массив тут не нужен,но я чет не могу понять до конца как
Решение задачи: «Определить периметры треугольников, заданных координатами их вершин»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
int n=1;
double len(double x1, double y1, double x2, double y2)
{
return sqrt((x1-x2) * (x1-x2) + (y1-y2) * (y1-y2));
}
double perimeter(double x1, double y1, double x2, double y2, double x3, double y3)
{
return len(x1, y1, x2, y2) + len(x2, y2, x3, y3) + len(x3, y3, x1, y1);
}
int main()
{
double xa[5],ya[5],xb[5],yb[5],xc[5],yc[5];
for (int i=0; i<5; i++)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 11);
printf("\t\t\tТреугольник № %d\n\n",n);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
printf("Введите координаты А:\n");
printf("x = ");
scanf("%lf",&xa[i]);
printf("y = ");
scanf("%lf",&ya[i]);
printf("Введите координаты B:\n");
printf("x = ");
scanf("%lf",&xb[i]);
printf("y = ");
scanf("%lf",&yb[i]);
printf("Введите координаты C:\n");
printf("x = ");
scanf("%lf",&xc[i]);
printf("y = ");
scanf("%lf",&yc[i]);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 11);
printf("\n\t\t\tПериметр треугольника= %lf\n", perimeter(xa[i], ya[i], xb[i], yb[i], xc[i], yc[i]));
++n;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
printf("\n<br>\n\n");
}
return 0;
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Объявляются переменные: n (счетчик треугольников), xa, ya, xb, yb, xc, yc (координаты вершин треугольников)
- Задается цикл для ввода координат пяти треугольников
- Выводится информация о треугольнике с номером n
- Запрашиваются координаты треугольника n
- Вычисляется периметр треугольника по формуле: perimeter(xa[i], ya[i], xb[i], yb[i], xc[i], yc[i]) = len(xa[i], ya[i], xb[i], yb[i]) + len(xb[i], yb[i], xc[i], yc[i]) + len(xc[i], yc[i], xa[i], ya[i])
- Выводится периметр треугольника
- Увеличивается счетчик треугольников n
- Повторяются шаги 4-8 для всех пяти треугольников
- Завершается программа