Odległość euklidesowa, i pole koła

0

witam wszystkich,
moje zadanie w skrócie;[wejście]
3 - liczba kół
0 0 3 - odpowiednio y,x -wsp. środka pierwszego koła oraz, jego promień, r
1 1 2 - dla drugiego koła y,x,r
2 4 4 - dla trzeciego
3 - liczba par dla których należy wykonać zadanie, czyli wypisać, jaka jest odległość pomiędzy środkami tych punktów oraz ile wynosi pole większego z nich
1 2 -wykonać obliczenia dla koła nr.1 i 2
2 3 - itd
3 1 - ...

Otóż, napisałem struktury (dwie), i wskaźniki na nie, pierwsza przechowuje wartości y,x,r druga a,b czyli nr. kół dla których będą obliczenia, utknąłem w miejscu gdzie trzeba te obliczenia wykonać, bo nie wiem czy zrobić zewnętrzną funkcję liczącą odległość i pole i się odwoływać do niej czy inaczej, zamieszczę co mam, może będzie lepiej widać.

#include <cstdlib>
#include <iostream>

using namespace std;

struct odleglosc
{
       int y;
       int x;
       int r;     
};
struct pary
{
       int a;
       int b;
};

int main()
{
    int lk=0;
    cin>>lk;
    odleglosc * ab=new odleglosc[lk];
    for (int i=0; i<lk; ++i)
    {
        cin>>ab[i].y>>ab[i].x>>ab[i].r;
    }
    int lp=0;
    cin>>lp;
    pary * pdo=new pary[lp]
    for (int i=0; i<lp; ++i)
    {
        cin>>pdo[i].a>>pdo[i].b;
    }

    delete[] ab;
    delete[] pdo;
    system("PAUSE");
    return 0;
}
0

poradziłem sobie, na przyszłość gdyby ktoś miał podobne zadanie;

#include <cstdlib>
#include <iostream>
#include <cmath>
#include <iomanip>

using namespace std;

double srodki(int xb, int xa, int yb, int ya)
{
       double c=0;
       c=sqrt(((xb-xa)*(xb-xa))+((yb-ya)*(yb-ya)));
       return c;
};

struct odleglosc
{
       int y;
       int x;
       int r;     
};
struct pary
{
       int a;
       int b;
};

int main()
{
    int lk=0;
    cin>>lk;
    odleglosc * ab=new odleglosc[lk];
    for (int i=0; i<lk; ++i)
    {
        cin>>ab[i].y>>ab[i].x>>ab[i].r;
    }
    int lp=0;
    cin>>lp;
    pary * pdo=new pary[lp];
    for (int i=0; i<lp; ++i)
    {
        cin>>pdo[i].a>>pdo[i].b;
    }
    for (int j=0; j<lp; ++j)
    {
        cout << fixed << setprecision(2) << srodki(ab[(pdo[j].b)-1].x,ab[(pdo[j].a)-1].x,ab[(pdo[j].b)-1].y,ab[(pdo[j].a)-1].y) << " ";
        if (ab[(pdo[j].a)-1].r>ab[(pdo[j].b)-1].r)
        {
           cout << fixed << setprecision(2) << 3.14*(ab[(pdo[j].a)-1].r)*(ab[(pdo[j].a)-1].r) << endl;
        }else
           cout << fixed << setprecision(2) << 3.14*(ab[(pdo[j].b)-1].r)*(ab[(pdo[j].b)-1].r) << endl;  
    }
    delete[] ab;
    delete[] pdo;
    system("PAUSE");
    return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0