Определить периметры треугольников, заданных координатами их вершин - 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 для всех пяти треугольников
- Завершается программа
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д