// ГЕОМЕТРИЯ ШАРЫ
#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);
}
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.