
Определить, какая из точек плоскости A(x1,y1), B(x2,y2), C(x3,y3) ближе к началу координат на Си!


Ответы на вопрос

Если возникает ошибка "undefined reference", компилируйте с флагом -lm
#include <stdio.h>
#include <math.h>
int main(void)
{
int
x[3],
y[3],
index;
for(int i = 0; i < 3; i++)
scanf("%d%d", &x[i], &y[i]);
float min = sqrt(pow(x[0], 2) + pow(y[0], 2));
for(int i = 1; i < 3; i++)
{
float tmp = sqrt(pow(x[i], 2) + pow(y[i], 2));
if(tmp < min)
{
min = tmp;
index = i;
}
}
printf("Ближайщая точка к началу координат: %c\n", (index == 0) ? 'A' : (index == 1) ? 'B' : 'C');
return 0;
}




Для определения того, какая из точек A, B или C ближе к началу координат на плоскости, мы можем использовать формулу расстояния между двумя точками в декартовой системе координат.
Формула расстояния между двумя точками (x, y) и (a, b) на плоскости выглядит следующим образом:
d = √((x - a)² + (y - b)²)
где (x, y) - координаты одной точки (например, начало координат), а (a, b) - координаты другой точки (A, B или C).
Для каждой точки (A, B и C) нам нужно вычислить расстояние от нее до начала координат и затем сравнить полученные значения, чтобы определить, какая из точек ближе всего к началу координат.
Вот код на языке Си, который поможет определить ближайшую точку:
c#include <stdio.h>
#include <math.h>
// Функция для вычисления расстояния между двумя точками (x1, y1) и (x2, y2)
double distance(double x1, double y1, double x2, double y2) {
return sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
}
int main() {
// Ввод координат точек A, B и C
double x1, y1, x2, y2, x3, y3;
printf("Введите координаты точки A (x1 y1): ");
scanf("%lf %lf", &x1, &y1);
printf("Введите координаты точки B (x2 y2): ");
scanf("%lf %lf", &x2, &y2);
printf("Введите координаты точки C (x3 y3): ");
scanf("%lf %lf", &x3, &y3);
// Вычисление расстояний от каждой точки до начала координат
double distA = distance(0, 0, x1, y1);
double distB = distance(0, 0, x2, y2);
double distC = distance(0, 0, x3, y3);
// Сравнение расстояний и вывод результата
if (distA < distB && distA < distC) {
printf("Точка A ближе к началу координат.\n");
} else if (distB < distA && distB < distC) {
printf("Точка B ближе к началу координат.\n");
} else {
printf("Точка C ближе к началу координат.\n");
}
return 0;
}
Программа запросит у пользователя ввести координаты точек A, B и C, а затем определит, какая из них ближе к началу координат и выведет соответствующий результат.


Похожие вопросы

Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili