[C++] Proste operacje na liczbach
Ostatnio zmodyfikowano 2012-10-23 17:02
maze Temat założony przez niniejszego użytkownika |
» 2012-10-23 16:37:01 hmm, a wie ktos z was, dlaczego moja funkcja dzialanie, zwraca mi wartosc "1" ??? powinna zworic pierwiastek z 13. #include <iostream> #include <stdio.h> #include <cmath> using namespace std;
double dzialanie( double a, double b )
{ double kwadrat; double podstawa =( a * a + b * b ); dzialanie = pow( podstawa, 1 / 2 ); return dzialanie; }
int main() { double a, b; double wynik; cout << "Aby obliczyc kwadrat dwoch liczb podaj a i b: " << endl; cin >> a >> b; wynik = dzialanie( a, b ); cout << "a =" << a << " b =" << b << " wynik =" << wynik; cout << endl << "Koniec programu"; return 0; }
|
|
jsc |
» 2012-10-23 16:44:14 A co wpisujesz do konsoli? |
|
maze Temat założony przez niniejszego użytkownika |
» 2012-10-23 16:47:21
Aby obliczyc kwadrat dwoch liczb podaj a i b:
2 3
a =2 b =3 wynik =1
Koniec programu
wpisuje 2 i 3, czyli chce >> 2*2+3*3 = 13 i z tego pierwiastek (czyli pow(a,1/2) |
|
crash |
» 2012-10-23 16:51:24 Jakiego używasz kompilatora, że pozwala na linijkę nr 12: dzialanie = pow( podstawa, 1 / 2 );
C::B + MinGW się burzy ;> Przerobiłem na: return pow( podstawa, 1 / 2 );
Patent polega na tym, że 1 oraz 2 to liczby całkowite, więc typ int. Dzielenie jednego int;a przez drugiego daje... int :) Pierwsze rozwiązanie to zrobić z którejś liczby double: return pow( podstawa, 1 / 2.0 );
Drugie rozwiązanie to rzutowanie: return pow( podstawa,( double ) 1 / 2 );
|
|
maze Temat założony przez niniejszego użytkownika |
» 2012-10-23 17:02:23 Dzieki za odpowiedz!
Teraz dziala, co do kompilatora, to uzywam cross-compilatora MinGW podpietego do linuxowego srodowiska Eclipse ;)
tak wiec moge kompilowac windowsowe programy natywnie pod linuksem, musza byc na winde, bo na zajeciach takie robimy... co za swiat ;d
|
|
1 « 2 » |