Cześć, mógłbym prosić kogoś o podpowiedź w wykonaniu tego zadania, mam napisać program który wypisze mi monety jakie są potrzebne do wydania reszty, utknąłem na etapie w którym ktoś podaje wysokość reszty (złotowki[spacja]grosze) i gdy podam resztę np 12 00 wszystko dobrze się wypisuje, ale gdy tylko dodam jakieś grosze, program nie zlicza nic.
public static void main(String[] args) {
Scanner dane = new Scanner(System.in);
System.out.print("Podaj resztę: ");
double zl = dane.nextDouble();
double gr = dane.nextDouble();
double gr1 = gr / 100;
double liczba = zl + gr1;
System.out.println("Całość: " + liczba);
double ilosc_5 = 0;
double ilosc_2 = 0;
double ilosc_1 = 0;
double ilosc_0_50 = 0;
double ilosc_0_20 = 0;
double ilosc_0_10 = 0;
double ilosc_0_05 = 0;
double ilosc_0_02 = 0;
double ilosc_0_01 = 0;
do
{
if (liczba >= (5.00))
{
ilosc_5 = Math.floor(liczba / 5.00);
liczba = liczba % 5.00;
}
else if (liczba >= (2.00))
{
ilosc_2 = Math.floor(liczba / 2.00);
liczba = liczba % 2.00;
}
else if (liczba >= (1.00))
{
ilosc_1 = Math.floor(liczba / 1.00);
liczba = liczba % 1.00;
}
else if (liczba >= (0.50))
{
ilosc_0_50 = Math.floor(liczba / (0.50));
liczba = liczba % (0.50);
}
else if (liczba >= (0.20))
{
ilosc_0_20 = Math.floor(liczba / (0.20));
liczba = liczba % (0.20);
}
else if (liczba >= (0.10))
{
ilosc_0_10 = Math.floor(liczba / (0.10));
liczba = liczba % (0.10);
}
else if (liczba >= (0.05))
{
ilosc_0_05 = Math.floor(liczba / (0.05));
liczba = liczba % (0.05);
}
else if (liczba >= (0.02))
{
ilosc_0_02 = Math.floor(liczba / (0.02));
liczba = liczba % (0.02);
}
else if (liczba >= (0.01))
{
ilosc_0_01 = Math.floor(liczba / (0.01));
liczba = liczba % (0.01);
}
} while (liczba != 0.00);
System.out.println("5 zł x " + ilosc_5);
System.out.println("2 zł x " + ilosc_2);
System.out.println("1 zł x " + ilosc_1);
System.out.println("0.50 zł x " + ilosc_0_50);
System.out.println("0.20 zł x " + ilosc_0_20);
System.out.println("0.10 zł x " + ilosc_0_10);
System.out.println("0.05 zł x " + ilosc_0_05);
System.out.println("0.02 zł x " + ilosc_0_02);
System.out.println("0.01 zł x " + ilosc_0_01);
}
}