Си. Направьте на путь праведный
Код:
Зашел в тупик реализацией на Си ><
Собственно сама задача
Цитата:
На территории имеется N камер видео наблюдений, исходные координаты которых (xi, yi), i=0..N-1, радиусы локации — ri.
б) для точки T(x,y) определить, в области видимости каких камер видео наблюдений она находится;
в) Нарушитель следует из точки A(x1; y1) в точку B(x2; y2). Сколько камер его заметят.
Входные данные:
- число N -количество камер(1<N<=300);
- N строк вида xi, yi, ri.
- координаты точек T(x,y) и A(x1; y1) , B(x2; y2).
Выходные данные:
- первая строка- порядковые номера камер ВН, в области видимости которых находится точка Т;
- вторая строка - количество камер ВН, заметивших нарушителя.
|
Мои попытки реализовать
Код:
#include <stdio.h>
#include <math.h>
main(){
int n,xi,yi,ri,x,y,x1,y1,x2,y2; // Переменные вводимые пользователем
int i=0; // Переменные цикла
/*Входные данные задачи [Б]*/
printf("Введите N -количество камер: "); // Число N -количество камер (1<n<=300)
scanf("%d" ,&n);
printf("Введите координаты камер: "); // N строк вида xi, yi, ri
scanf("%d%d%d" ,&xi,&yi,&ri);
printf("Введите координаты точек:\n");
printf("T(x,y): "); // Координаты точек T, A, B
scanf("%d%d" ,&x,&y);
/*Входные данные Задача [В]*/
printf("A(x1,y1)"); // |---Нарушитель следует из точки [А]--->
scanf("%d%d" ,&x1,&y1);
printf("B(x2,y2)"); // --->в точку [В]---|
scanf("%d%d" ,&x2,&y2);
int k,function; //Переменные для расчёта
printf("\n");
printf("[Задача 1.2]\n[Задание Б]\n");
function = pow(0-x,2)+pow(0-y,2); //x^2+y^2
if (function<=pow(ri,2)) { //по теореме пифагора проверяем чтобы сумма квадратов координат точки
printf("\tНарушитель находится в области видимости\n");
}
else {
printf("\tНарушитель не находиться в области видимости камер\n");
}
}
Проверка попадает ли точка
Тут я хотел сделать проверку попадает ли точка в радиус камер.
Код:
function = pow(0-x,2)+pow(0-y,2); //x^2+y^2
if (function<=pow(ri,2)) { //Определить попадает ли точка с координатами х,у в круг радиуса r. printf("\tКатер нарушитель находится в области видимости\n");
}
else {
printf("\tКатер нарушитель не находиться в области видимости радара\n");
}
|