Найти точку на окружности

zidans

Здравствуйте. Подскажите, пожалуйста.По написанной программе надо найти точку, лежащую на окружности.Было задание :Составить программу по обработке одномерного массива согласно условию:В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в порядке х1,у1,х2,у2,х3,у3 и т.д. Определить кольцо с центром в начале координат, которое содержит все точки.Код программы:# include # includevoid main(void) { int a[100]; int n, i, p, q, s=0, w; cout <<"kolichestvo tochek="; cin>>n; p=n*2; n=p; cout <<" "<< endl; cout <<" koordinaty tochek:"<< endl; cout <<" "<< endl; p=1; q=1; for (i=0; i
4 ответа

zidans

По написанной программе надо найти точку, лежащую на окружности. Это что значит?А вообще точка лежащая на окружности c центром в начале координат определятся очень просто. Pадиус окружности на которой лежит точка: SQRT(x^2+y^2) , а дальше фиксируешь радиус окружности, и y например и вычисляешь x


zidans

помойму все проще, надо просто найти точку наиболее далеко отстоящую от начала координат, ее координаты должны входить в область, описываемую окружностью.
int n;
std::cout << "Enter number of points: ";
std::cin >> n;
float A[n];
for (int i=0; i<n;++i) std::cin >> A[i];
float maxx = A[0];
float maxy = A[1];
for (int i=0; i < n-1; ++i) {
   if (fabs(A[i]) > fabs(maxx) or fabs(A[i+1]) > fabs(maxy)) {
      maxx = A[i];
      maxy = A[i+1];
   }
   ++i;
}
float r = (fabs(maxy) < fabs(maxx))?(maxx):(maxy);
std::cout << r*r << " = " << "x^2 + y^2\n";


zidans

Ну дак, когда находим максимальный радиус, заодно сохраняем координаты в отдельные переменные:
if (s<w)
{
    s = w;
    x = p;
    y = q;
}
И ещё, zidans, у вас в проге никакое кольцо не находится, а только внешний его радиус. Нужно ещё найти внутренний!


zidans

zidans, у вас в проге никакое кольцо не находится, а только внешний его радиус.
На самом деле даже и внешний радиус не находится...