Описать структуры Шар и Точка; проверить, находится ли точка внутри заданного шара - C (СИ)
Формулировка задачи:
Определить структуры, описывающие шар и точку в трехмерном пространстве. Составить и протестировать функцию, которая проверяет, находится ли точка внутри заданного шара.
Решение задачи: «Описать структуры Шар и Точка; проверить, находится ли точка внутри заданного шара»
textual
Листинг программы
#include <stdio.h>
struct point {
double x;
double y;
double z;
};
struct sphere {
double x0;
double y0;
double z0;
double R;
};
int func(struct point point1, struct sphere sphere1)
{
double L = 0.0;
L = (sphere1.x0 - point1.x)*(sphere1.x0 - point1.x) +
(sphere1.y0 - point1.y)*(sphere1.y0 - point1.y) +
(sphere1.z0 - point1.z)*(sphere1.z0 - point1.z);
if(L <= sphere1.R*sphere1.R)
return 1;
else
return 0;
}
int main()
{
struct point point1;
struct sphere sphere1;
printf("Point.X = ");
scanf("%lf", &point1.x);
printf("Point.Y = ");
scanf("%lf", &point1.y);
printf("Point.Z = ");
scanf("%lf", &point1.z);
printf("Sphere.X0 = ");
scanf("%lf", &sphere1.x0);
printf("Sphere.Y0 = ");
scanf("%lf", &sphere1.y0);
printf("Sphere.Z0 = ");
scanf("%lf", &sphere1.z0);
printf("Sphere.R = ");
scanf("%lf", &sphere1.R);
if(func(point1,sphere1))
printf("IN");
else
printf("OUT");
return 0;
}
Объяснение кода листинга программы
- Объявление структур point и sphere.
- Определение функции func для проверки принадлежности точки к сфере.
- Ввод данных для точки и сферы с помощью scanf.
- Вызов функции func для проверки принадлежности точки к сфере.
- Вывод результата проверки с помощью printf.
- Возврат значения 0 функцией main, заканчивающей выполнение программы.