Gość Zuk87 Napisano Październik 24, 2005 Zgłoszenie Share Napisano Październik 24, 2005 Dostałem zadanie: obliczyc sume 1/1^1+1/2^2+1/3^3+...+1/n^n dla podanego n spróbuj to napisać w c++ Mam napisany program: #ifdef HAVE_CONFIG_H #include <config.h> #endif #include <iostream> #include <cstdlib> #include <math.h> using namespace std; int main(int argc, char *argv[]) { int n, i; float w, x=0.5; cout<<"Podaj n:"; cin>>n; cout<<n<<" "<<w<<endl; for(i=1;i-1-n;i++){ cout<<"oto "<<i<<" petla"<<endl; x=(i^i); x=1/x; w=w+x; cout<<"w jest rowne "<<w<<" po "<<i<<" petli"<<endl; } cout<<"Ostatecznie w wynosi "<<w<<endl; return EXIT_SUCCESS; } i zwracany wynik to inf. Ktoś mi może napisać gdzie tkwi błąd??? P.S. Jeśli zmienie x=(i*i) to program działa poprawnie... Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@perl Napisano Październik 24, 2005 Zgłoszenie Share Napisano Październik 24, 2005 x=(i^i); to jest potegowanie do i a to: x=(i*i) podniesienie do kwadratu liczby zgodne z wpisem x=(i^2) wiec watpie zeby przy i*i program dziala poprawnie Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Gość Zuk87 Napisano Październik 24, 2005 Zgłoszenie Share Napisano Październik 24, 2005 dla i*i Podaj n:5 5 1.24999e-38 oto 1 petla w jest rowne 1 po 1 petli oto 2 petla w jest rowne 1.25 po 2 petli oto 3 petla w jest rowne 1.36111 po 3 petli oto 4 petla w jest rowne 1.42361 po 4 petli oto 5 petla w jest rowne 1.46361 po 5 petli Ostatecznie w wynosi 1.46361 dla i^i Podaj n:5 5 1.6908e-38 oto 1 petla w jest rowne inf po 1 petli oto 2 petla w jest rowne inf po 2 petli oto 3 petla w jest rowne inf po 3 petli oto 4 petla w jest rowne inf po 4 petli oto 5 petla w jest rowne inf po 5 petli Ostatecznie w wynosi inf BTW: wiem co oznacza "^" i "*", dziwi mnie działanie tego programu a raczej jego brak w poprawnej formie. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
KozaK Napisano Październik 24, 2005 Zgłoszenie Share Napisano Październik 24, 2005 hej. zamiast i^i sprobuj napisac tak: x = pow(i,i); Dzialanie funkcji jest nastepujace: i^2 -> pow(i,2) Aby program sie skompilowal musi byc dolaczona biblioteka matematyczna. Pozdrawiam. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Gość Zuk87 Napisano Październik 25, 2005 Zgłoszenie Share Napisano Październik 25, 2005 hej. zamiast i^i sprobuj napisac tak: x = pow(i,i); Działa!!! thx P.S. We wzorze był błąd: miało być 1/n^2. W wydruku ktoś podał wartości które pasowały do 1/n^2 a upierał się że ma być 1/n^n... Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się