Zieloneczek Temat założony przez niniejszego użytkownika |
Dziwne cyfry w pętli » 2019-03-11 21:16:41 Witam, mianowicie stworzylem program z problemem wydawania reszty, lecz pod koniec petli pojawiaja sie dziwne cyfry, gdy wpisuje pieniadze z groszami #include <iostream> #include <stdlib.h>
using namespace std;
int main() { double banknoty[ 15 ] = { 500.0, 200.0, 100.0, 50.0, 20.0, 10.0, 5.0, 2.0, 1.0, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01 }; double kwota; int ilosc, i; cout << "Podaj reszte do wyplacenia: "; cin >> kwota; i = 0; while( kwota > 0 ) { if( kwota >= banknoty[ i ] ) { ilosc = kwota / banknoty[ i ]; kwota = kwota -( banknoty[ i ] * ilosc ); cout <<( double ) banknoty[ i ] << " x " <<( double ) ilosc << endl; } i++; } return 0; }
|
|
pekfos |
» 2019-03-11 21:57:16 Przekraczasz zakres tablicy. Musisz kończyć pętlę gdy kwota jest mniejsza od jednego grosza, a nie mniejsza równa zero. |
|
Zieloneczek Temat założony przez niniejszego użytkownika |
» 2019-03-11 22:57:42 A więc zrobiłem tak, teraz przy podaniu 244.44 np. gubi jednego grosza tzn. po zsumowaniu pokazuje 244.43, nie 244.44 #include <iostream> #include <stdlib.h>
using namespace std;
int main() { double banknoty[ 15 ] = { 500.0, 200.0, 100.0, 50.0, 20.0, 10.0, 5.0, 2.0, 1.0, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01 }; double kwota; int ilosc, i; cout << "Podaj reszte do wyplacenia: "; cin >> kwota; i = 0; while( kwota > 0.001 ) { if( kwota >= banknoty[ i ] ) { ilosc = kwota / banknoty[ i ]; kwota = kwota -( banknoty[ i ] * ilosc ); cout <<( double ) banknoty[ i ] << " zl * " <<( double ) ilosc << endl; if( kwota <= 0.01 ) break; } i++; } return 0; }
|
|
YooSy |
» 2019-03-11 23:02:34 |
|
pekfos |
» 2019-03-11 23:21:23 |
|
Traktorr |
» 2019-03-25 17:35:33 Chyba zamiast if( kwota <= 0.01 ) to if( kwota < 0.01 ) bo gdy jest równe 0.01 to jest true i wykonuje instrukcje break dlatego zostaje jeden grosz |
|
« 1 » |