Помогите Исправить Ошибки

Тема в разделе "C/C++/C#", создана пользователем nike64n, 6 июл 2012.

  1. nike64n

    nike64n Гость

    Задание:
    Выбрать три различные точки из заданного множества точек на плоскости так, чтобы была минимальной разность между количествами точек, лежащих внутри и вне треугольника с вершинами в выбранных точках.

    Почему не работает? Помогите исправить ошибки, заранее благодарю.

    Код (C++):
    #include <iostream>

    int main(int argc, char* argv[])
    {
    //----------------------------------------------------------
    float A[100][2];
    int n;
    cout << "n="; cin>>n;
    for(int i=0; i<n; i++)
    {for(int j=0; j<2; j++)
    for(int k=0; k<4; k++)
    {cout<<"["<<i<<"]"<<"["<<j<<"]"<<"["<<k<<"]="; cin>>A[i] [j] [k];}
    }
    //----------------------------------------------------------

    float S=0, So=0, s1, s2, s3, p, p1, p2, p3, a, b, c, d, l, f;
    int r=(n-3);
    int v=0, w=0, x1, x2, x3, y1, y2, y3;

    //----------------------------------------------------------

    for (int i=0; i<n-2; i++)
    for (int j=i+1; j<n-1; j++)
    for (int k=j+1; k<n; k++)
    {   v=0;
    w=0;
    {
    a=sqrt(pow((A[i][0]-A[j][0]),2)+pow((A[i][1]-A[j][1]),2));
    b=sqrt(pow((A[j][0]-A[k][0]),2)+pow((A[j][1]-A[k][1]),2));
    c=sqrt(pow((A[k][0]-A[i][0]),2)+pow((A[k][1]-A[i][1]),2));

    p=((a+b+c)/2);
    S=sqrt(p*(p-a)*(p-b)*(p-c));


    for (int z=0; z<n; z++)
    {
    if((z!=i)&&(z!=j)&&(z!=k))
    {

    d=sqrt(pow((A[i][0]-A[z][0]),2)+pow((A[i][1]-A[z][1]),2));
    l=sqrt(pow((A[j][0]-A[z][0]),2)+pow((A[j][1]-A[z][1]),2));
    f=sqrt(pow((A[k][0]-A[z][0]),2)+pow((A[k][1]-A[z][1]),2));

    p1=((a+l+d)/2);
    s1=sqrt(p1*(p1-a)*(p1-l)*(p1-d));

    p2=((b+l+f)/2);
    s2=sqrt(p2*(p2-b)*(p2-l)*(p2-f));

    p3=((c+d+f)/2);
    s3=sqrt(p3*(p3-c)*(p3-d)*(p3-f));

    So=s1+s2+s3;

    if(S==So) v++;
    else w++;

    }
    }

    int h=abs(v-w);
    if(h<r)
    { r=h;
    x1=A[i][0]; y1=A[i][1];
    x2=A[j][0]; y2=A[j][1];
    x3=A[k][0]; y3=A[k][1];
    }
    }
    }

    cout<<"A=("<<x1<<"; "<<y1<<")\n";
    cout<<"B=("<<x2<<"; "<<y2<<")\n";
    cout<<"C=("<<x3<<"; "<<y3<<")\n";
    }
     
  2. nike64n

    nike64n Гость

    ругаеться на 8 и 15 строку... что делать?башка вообще не варит

    Код (C++):
    #include <iostream>
    #include <math.h>
    int main(int argc, char* argv[])
    {
    //----------------------------------------------------------
    float A[100][2];
    int n;
    cout<<"n="; cin>>n;
    for(int i=0; i<n; i++)
    {for(int j=0; j<2; j++)
    {cout<<"["<<i<<"]"<<"["<<j<<"]="; cin>>A[i][j];}
    }
    //----------------------------------------------------------

    float S=0, So=0, s1, s2, s3, p, p1, p2, p3, k, a, b, c, d, l, f;
    int r=(n-3);
    int v=0, w=0, x1, x2, x3, y1, y2, y3;

    //----------------------------------------------------------

    for (int i=0; i<n-2; i++)
    for (int j=i+1; j<n-1; j++)
    for (int k=j+1; k<n; k++)
    {   v=0;
    w=0;
    {
    a=sqrt(pow((A[i][0]-A[j][0]),2)+pow((A[i][1]-A[j][1]),2));
    b=sqrt(pow((A[j][0]-A[k][0]),2)+pow((A[j][1]-A[k][1]),2));
    c=sqrt(pow((A[k][0]-A[i][0]),2)+pow((A[k][1]-A[i][1]),2));

    p=((a+b+c)/2);
    S=sqrt(p*(p-a)*(p-b)*(p-c));


    for (int z=0; z<n; z++)
    {
    if((z!=i)&&(z!=j)&&(z!=k))
    {

    d=sqrt(pow((A[i][0]-A[z][0]),2)+pow((A[i][1]-A[z][1]),2));
    l=sqrt(pow((A[j][0]-A[z][0]),2)+pow((A[j][1]-A[z][1]),2));
    f=sqrt(pow((A[k][0]-A[z][0]),2)+pow((A[k][1]-A[z][1]),2));

    p1=((a+l+d)/2);
    s1=sqrt(p1*(p1-a)*(p1-l)*(p1-d));

    p2=((b+l+f)/2);
    s2=sqrt(p2*(p2-b)*(p2-l)*(p2-f));

    p3=((c+d+f)/2);
    s3=sqrt(p3*(p3-c)*(p3-d)*(p3-f));

    So=s1+s2+s3;

    if (fabs(S-So) <= 1.0E-8) v++;
    else w++;

    }
    }

    int h=fabs(v-w);
    if(h<r)
    { r=h;
    x1=A[i][0]; y1=A[i][1];
    x2=A[j][0]; y2=A[j][1];
    x3=A[k][0]; y3=A[k][1];
    }
    }
    }

    cout<<"A=("<<x1<<"; "<<y1<<")\n";
    cout<<"B=("<<x2<<"; "<<y2<<")\n";
    cout<<"C=("<<x3<<"; "<<y3<<")\n";
    }
     
  3. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    пиши конкретней.
    8 строка: cout<<"n="; cin>>n; тут все верно
    15 строка вообще пустая(т.е. тоже все верно).
     
Загрузка...
Похожие Темы - Помогите Исправить Ошибки
  1. Andersen1313
    Ответов:
    3
    Просмотров:
    3.839
  2. Rpp
    Ответов:
    1
    Просмотров:
    809
  3. victory
    Ответов:
    0
    Просмотров:
    965
  4. victory
    Ответов:
    0
    Просмотров:
    789
  5. victory
    Ответов:
    3
    Просмотров:
    1.328

Поделиться этой страницей