Poniższy program najpierw wylicza długość przeciwprostokątnej, po czym oblicza jego dwa pozostałe kąty i wypisuje n razy w jednej lini zaokrągloną wartość przyprostokątnej i wartość mniejszego kąta. Nie wiem dlaczego, ale dla przykładowych danych wejściowych mam złe wyniki, podaje przykład:
Wejśćie
2 2
3 4
9 8
Wyjście:
3 45
5 37
13 42
jednak u mnie na wyjściu tylko zgadza się z przykłądem pierwsza linia. Widzi ktoś tu gdzieś błąd?
#include <iostream>
#include <cmath>
using namespace std;
float licz_kat( double a, double b)
{
float kat=0, trzeci=0;
kat=atan(a/b);
kat=kat * 180 / M_PI;
trzeci = 90 - kat;
if (kat<trzeci) return round(kat);
else return round(trzeci);
kat=0;
trzeci=0;
}
int main() {
double x,a,b;
double c=0;
cin>>x;
for (int i=0;i<x;i++)
{
cin>>a;
cin>>b;
a=a*a;
b=b*b;
c=sqrt(a+b);
c=ceil(c);
cout<<c<<" "<<licz_kat(a,b)<<endl;
}
return 0;
}
poprawienie tytułu wątku + dodanie znaczników <code> dla treści wejścia i wyjścia - fp