Program do obliczania logarytmu naturalnego.
Ostatnio zmodyfikowano 2014-11-16 02:48
Atexor |
» 2014-11-05 12:22:05 Nedvid, chyba już wiem w czym problem. Pewnie program ma problem z dodawaniem liczby, z uwagi że jest pewnie niewymierna (lub ma bardzo wiele miejsc po przecinku) i nie ogarnia "przybliżania na końcu".
Trzeba by ją już na etapie zmiennych (nie wyświetlania) przybliżyć do np. 30 miejsc po przecinku.
------------------------- Osa, jak zamieszczaj kod w znacznikach [c p p] [ / c p p] (bez spacji), łatwiej się czyta.
Po co to dołączasz: "stdafx.h"? Aż takiego skomplikowanego kodu nie masz, (teoretycznie - nie wiem jak to działa) aby przyspieszać jego kompilację.
Po co ci argumenty przy inicjalizacji głównej funkcji? Starczy samo int main(). Twój błąd polega na tym, że przy odczytywaniu liczby printf'em podajesz "ampersanda" &, a go się daje tylko do wczytywania liczb, aby wiedział pod jaki adres ma przypisać daną zmienną.
Swoją drogą, piszesz kod w C++, to dlaczego nie korzystasz z wygodniejszych std::cin i std::cout? |
|
DejaVu |
» 2014-11-05 22:28:40 @up: skup się na właściwym problemie, a nie na wytykaniu rzeczy, które generuje automatycznie Visual C++. Problemem jest implementacja algorytmu, a nie styl kodowania czy też dołączone pliki nagłówkowe. Pewnie program ma problem z dodawaniem liczby, z uwagi że jest pewnie niewymierna (lub ma bardzo wiele miejsc po przecinku) i nie ogarnia "przybliżania na końcu". |
Liczba wymierna czy niewymierna - nie ma to najmniejszego znaczenia. Algorytm jest źle zaimplementowany. Komputer ma określoną ilość bajtów do przechowania określonej wartości stało lub zmiennoprzecinkowej, więc co najwyżej wynik nieco utraci na precyzji (w przypadku liczb zmiennoprzecinkowych o rozsądnych wartościach). |
|
Piastlis |
» 2014-11-16 02:48:04 Działało by lepiej jakbyście porównywali sumę z sumą z poprzedniej iteracji a nie z nią samą. |
|
1 2 « 3 » |