Witam,
otóż rozwiązując pewne zadanie, natknąłem się na pewien problem. Wygląda to tak:
Zadaniem tego programu jest mając podane współrzędne, środków dwóch kół i długość ich promieni, określić, czy koła te mają chociaż jeden punkt wspólny. Ja to zrobiłem tak, że na tych dwóch punktach opisałem prostokąt, policzyłem jego boki i chcę teraz wyliczyć długość przekątnej, i tu pojawia się problem, ponieważ program ten, liczy dla np. 10 funkcją sqrt() pierwiastek wielkości 3, a nie 3,16... a to duża różnica. Natomiast co ciekawe pisząc dla sprawdzenia taki kod:
I tu o dziwo okazuje się, że ta funkcja działa poprawnie. Więc zwracam się z pytaniem na tym forum, co jest nie tak z pierwszym kodem ?
Pozdrawiam,
Ninjago
PS.Jeśli trzeba to mogę podesłać treść tego zadania.
otóż rozwiązując pewne zadanie, natknąłem się na pewien problem. Wygląda to tak:
Kod:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int n;
cin >> n;
for (int i=1;i <= n; i++)
{
int x1,x2,y1,y2,r1,r2,a=0,b=0;
// dla danych wejściowych: 0 3 2 3 2 1
cin >> x1;
cin >> y1;
cin >> r1;
cin >> x2;
cin >> y2;
cin >> r2;
if (x1 > x2) a = x1 - x2;
if (x2 > x1) a = x2 - x1;
else a = 0;
if (y1 > y2) b = y1 - y2;
if (y2 > y1) b = y2 - y1;
else b = 0;
double d = 0.0000000;
d = sqrt(a*a+b*b);
if (r1+r2 >= d) cout << "TAK" <<endl;
else cout << "NIE" << endl;
}
}
Kod:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int a, b;
for (;;)
{
double d=0.0000000000;
cin >> a; // ma wynosic 3
cin >> b; // ma wynosic 1
d = sqrt(a*a+b*b);
if (3 >= d) cout << "TAK"; // 3 to jest laczna dlugosc promieni obu kół
else cout << "NIE";
}
}
Pozdrawiam,
Ninjago
PS.Jeśli trzeba to mogę podesłać treść tego zadania.