ГЕОМЕТРИЯ ШАРЫ

// ГЕОМЕТРИЯ ШАРЫ #include "stdafx.h" #include <stdio.h> #include <math.h> struct ball //тип вводимых данных о шаре: координаты его центра и радиус { double x; double y; double z; double rad; }; double r0(ball a1, ball a2) //возвращает расстояние между центрами { double r0; r0 = sqrt(fabs((a1.x - a2.x)*(a1.x - a2.x) + (a1.y - a2.y)*(a1.y - a2.y) + (a1.z - a2.z)*(a1.z - a2.z))); return (r0); } ball res(ball ball_1, ball ball_2) //определяет координаты центра окружности, охватывающей 2 заданных шара { double dist; //радиус окружности dist = r0(ball_1, ball_2) + ball_1.rad + ball_2.rad; //прямая через центры окружностей (x - x1)(x2 - x1) - (y - y1)(y2-y1) } void main() { int n; int i, j; double ANSW; ball A[1000]; ball sphere; double max1; //максимальное расстояние между радиусами max1 = 0; printf("enter the number of spheres: "); scanf("%i", &n);//кол-во всего шаров for (i = 0; i < n; i++) //занесли все шары в массив { printf("enter the (x,y,z) coordinates of the sphere numer %i and it's radius \n", i); scanf("%d%d%d%d", &sphere.x, &sphere.y, &sphere.z, &sphere.rad); //считали координаты всех шаров и их радиусы A[i] = sphere; } if (n == 1) printf("%d", A[0].rad); //случай, когда вводится 1 шар else { for (i = 0; i < n; i++) for (j = 0; j < n; i++) { if ((A[i].rad + A[j].rad + r0(A[i], A[j])) > max1) //если сумма радиусов + расстояние между ними больше max { max1 = A[i].rad + A[j].rad + r0(A[i], A[j]); } } ANSW = max1 / 2; printf("%d", ANSW); } scanf("%i", &n); }

Be the first to comment

You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.