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

Problem z pętlą.

HackNation - ogólnopolski hackathon
0 głosów
122 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ź 529 wizyt
pytanie zadane 24 lipca 2021 w C i C++ przez Bartusio445 Początkujący (290 p.)
0 głosów
1 odpowiedź 251 wizyt
pytanie zadane 8 października 2020 w C i C++ przez Filip325 Nowicjusz (160 p.)
0 głosów
1 odpowiedź 336 wizyt
pytanie zadane 15 listopada 2016 w C i C++ przez Pixel040 Gaduła (3,100 p.)

93,626 zapytań

142,551 odpowiedzi

323,044 komentarzy

63,130 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 1452p. - dia-Chann
  2. 1437p. - DziarnowskiJ
  3. 1411p. - Łukasz Piwowar
  4. 1409p. - CC PL
  5. 1388p. - Maurycy W
  6. 1371p. - raydeal
  7. 1369p. - Adrian Wieprzkowicz
  8. 1360p. - Tomasz Bielak
  9. 1335p. - robwarsz
  10. 1184p. - Michal Drewniak
  11. 1141p. - ssynowiec
  12. 1116p. - rucin93
  13. 1102p. - Dominik Łempicki (kapitan)
  14. 1100p. - Mariusz Fornal
  15. 1048p. - Rafał Trójniak
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

Kursy INF.02 i INF.03
...