Тема: Знайти найближчу точку до початку координат
Недавно почали вчити Сі, і дали ось таку задачу:
На площині задано 3 точки (х1, у1; х2, ...). Визначити, яка з них ближча до початку координат.
Я написав програму, але працює вона неправильно. Можливо, замість розгалужень є інший алгоритм пошуку меншої змінної?
(за функцію вводу я знаю: можна було записати в одному "scanf", просто я вже пробував різні конфігурації, бо не працювало)
Внизу на зображенні видно, що воно неправильно рахує
##include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int x1,x2,x3,y1,y2,y3;
float m,n,b;
printf("Press x\n");
scanf("%d",&x1);
scanf("%d",&x2);
scanf("%d",&x3);
printf("Press y\n");
scanf("%d",&y1);
scanf("%d",&y2);
scanf("%d",&y3);
m=sqrt(x1*x1-y1*y1);
n=sqrt(x2*x2-y2*y2);
b=sqrt(x3*x3-y3*y3);
printf("-- [0;0]: %f, %f, %f\n",m,n,b);
{
if(m<n&&m<b)
{
printf("Point 1\n");
}
else if(n<m&&n<b)
{
printf("Point 2\n");
}
else if(b<n&&b<m)
{
printf("Point 3\n");
}
}
system("PAUSE");
return 0;
}
}