• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z pętlą.

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
96 wizyt
pytanie zadane 13 listopada 2016 w C i C++ przez Prg Użytkownik (580 p.)
#include <iostream>

using namespace std;

int main()
{
	double x, y, z;
	cin >> x >> y >> z;
	
	for(; x <= y; x+=z)
	{
		cout << x;
		cout << endl;
	}
	
    return 0;       
}

Dlaczego np. dla x=1, y=2 i z=0.1 obiekt cout wyświetla wartości w pętli od 1 do 1.9 bez dwójki, a jeśli za x=1, y=5 i z=0.1 obiekt cout wyświetla w pętli wartości od 1 do 5 włącznie?

1 odpowiedź

+1 głos
odpowiedź 13 listopada 2016 przez niezalogowany
edycja 30 sierpnia 2017

Zmienne typu double nie przechowują dokładnie liczb zmiennoprzecinkowych. Zawsze jest to jakieś przybliżenie i musisz zdawać sobie sprawę, że czasami będzie narastał błąd wraz z kolejnymi obliczeniami. Nawet jeżeli jest on niewielki i pozornie go nie widać. Przeanalizuj swoje przykłady na tym kodzie:

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    double x, y, z;
    cin >> x >> y >> z;

    int i=0;

    for(; x <= y; x+=z)
    {
        i++;
        cout<<i<<" : \t";
        cout <<fixed<<setprecision(20)<< x << " <= " << y;
        cout << endl;
    }

    return 0;
}

Podobne pytania

0 głosów
1 odpowiedź 359 wizyt
pytanie zadane 24 lipca 2021 w C i C++ przez Bartusio445 Początkujący (290 p.)
0 głosów
1 odpowiedź 196 wizyt
pytanie zadane 8 października 2020 w C i C++ przez Filip325 Nowicjusz (160 p.)
0 głosów
1 odpowiedź 274 wizyt
pytanie zadane 15 listopada 2016 w C i C++ przez Pixel040 Gaduła (3,100 p.)

93,187 zapytań

142,201 odpowiedzi

322,012 komentarzy

62,514 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2365p. - dia-Chann
  2. 2326p. - Łukasz Piwowar
  3. 2315p. - Łukasz Eckert
  4. 2269p. - Tomasz Bielak
  5. 2006p. - Michal Drewniak
  6. 2006p. - rucin93
  7. 2005p. - Łukasz Siedlecki
  8. 1964p. - CC PL
  9. 1946p. - Adrian Wieprzkowicz
  10. 1901p. - Mikbac
  11. 1744p. - rafalszastok
  12. 1734p. - Anonim 3619784
  13. 1586p. - Dawid128
  14. 1520p. - Marcin Putra
  15. 1480p. - ssynowiec
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...