Pętla for z krokiem
Ostatnio zmodyfikowano 2016-01-11 14:55
locf Temat założony przez niniejszego użytkownika |
Pętla for z krokiem » 2016-01-10 21:40:08 Napisz pętlę for, która drukuje wszystkie wartości typu double od -0.8 do 3.5 z krokiem 0.2. Jeśli mam taki kod: #include <iostream>
using namespace std;
int main() { for( double i = - 0.8; i <= 3.5; i += 0.2 ) { cout << i << " "; } return 0; }
. to zamiast zera mam jakieś dziwne "śmieci" zaczerpnięte chyba z pamięci. Dlaczego tak się dzieje i jak poprawić ten program? |
|
1aam2am1 |
» 2016-01-10 22:01:22 To nie śmieci to notacja wykładnicza |
|
locf Temat założony przez niniejszego użytkownika |
» 2016-01-10 22:03:59 czyli program jest prawidłowo napisany? |
|
1aam2am1 |
» 2016-01-10 22:10:44 Tak jest napisany prawidłowo te -5.55112e-17 to ok -0,0000000000000000555112 |
|
pekfos |
» 2016-01-10 23:41:16 czyli program jest prawidłowo napisany? |
I tak, i nie. Zależy, czy dopuszczasz takie błędy obliczeń. Można to zrobić też tak for( int i = 0; i <( 3.5 - - 0.8 ) / 0.2; ++i ) std::cout << 0.2 * i + - 0.8 << ' '; |
|
locf Temat założony przez niniejszego użytkownika |
» 2016-01-11 13:09:35 Dziękuję za pomoc. W poleceniu ma być typ double, więc nie wiem, czy to rozwiązanie byłoby uznane, mimo że wypisuje liczby prawidłowo. |
|
carlosmay |
» 2016-01-11 14:55:33 W poleceniu ma być typ double, więc nie wiem, czy to rozwiązanie byłoby uznane, mimo że wypisuje liczby prawidłowo. | 3.5 to przecież liczba typu double. Jaki problem, aby podmienić liczby zmiennymi o tych wartościach? |
|
« 1 » |