Расстояние между точками - C (СИ)
Формулировка задачи:
Дана задача
На плоскости заданы n точек: (x1,y1), (x2,y2)… (xn,yn). Найти наименьшее из расстояний от точки (x0,y0) до всех остальных. Вычисление длины отрезка оформить в виде подпрограммы.
Вроде все понятно, нужно занести формулу вычисления расстояния между двумя точками(L=√(x-x0)²+(y-y0)²) в функцию и в цикле повторять ее в зависимости от n
Вот только каким образом туда ее занести
Решение задачи: «Расстояние между точками»
textual
Листинг программы
# include <stdio.h> # include <conio.h> # include <stdlib.h> # include <math.h> # include <time.h> int vect_coord[20][1]; // массив содержащий координаты отрезков int n; // количество точек //генерируем координаты в зависимости от количества точек void generate_coords(int n1) { for(int i=0;i<=n;i++) { for(int j=0;j<=1;j++) { vect_coord[i][j]=rand() % 20; // printf(" elem coords is %i", vect_coord[i][j]); } } getch(); } int main() { int x0, y0, x, y, n; int L[20]; //вектор содержащий длины отрезков int min=0; printf("Vvrdite nachalnuyu koordinatu x "); scanf("%i", &x0); printf("\n"); printf("Vvrdite nachalnuyu koordinatu y "); scanf("%i", &y0); printf("\n"); printf("Vvrdite kolichestvo tochek n "); scanf("%i", &n); printf("\n"); generate_coords(n); // находим длину отрезков for(int i=0;i<=n;i++) { for(int j=0;j<=1;j++) { if(j==0) { x=vect_coord[i][j]; printf ("X is %i", x); printf("\n"); } if(j==1) { y=vect_coord[i][j]; printf("Y is %i", y); printf("\n"); } } L[i]=sqrt(pow((x-x0),2)+pow((y-y0),2)); printf("L is %i", L[i]); printf("\n"); getch(); } // выводим длину отрезков на экран for(int i=0;i<=n;i++) { printf(" length is %i", L[i]); printf("\n"); } // находим минимальную длину min = L[0]; for(int i=0; i<=n; i++) { if(min>L[i]) min=L[i]; } printf("Minimum is %i", min); getch(); return 0; }
Объяснение кода листинга программы
В данном коде решается задача нахождения расстояния между точками. Список действий:
- Подключение необходимых библиотек.
- Объявление массива для хранения координат отрезков и переменной для количества точек.
- Генерация случайных координат для каждого отрезка (с помощью функции rand() и ограничения на максимальное значение 20).
- Ввод начальных координат (x0, y0) и количества точек (n) с помощью функции scanf().
- Вызов функции generate_coords(n), которая генерирует координаты отрезков.
- Поиск длины каждого отрезка с помощью формулы расстояния между двумя точками (sqrt(pow((x-x0),2)+pow((y-y0),2))).
- Вывод длины каждого отрезка на экран с помощью функции printf().
- Вывод минимальной длины отрезка, найденной с помощью цикла и функции min().
- Возврат 0, означающий успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д