Здравейте,
Забих с решението на задача Calculate Change от [Workshop] Conditional Statements. Разгледах решенито на колегата, който пусна тема за същата задача, но под Java, но преди да опитам по неговия подход, искам да се опитам да довърша моя. Като се замисля, доста излишен код, но все пак съм почти на финала. Ето го моето решение:
При първата проверква с входни данни 0.76 и 1 - програмата работи коректно.
При втората проверка с входни данни 1.92 и 5 - връща грешен отговор.
Вместо:
3 x 1 lev
1 x 5 stotinki
1 x 2 stotinki
1 x 1 stotinka
Връща:
1 x lev
3 x 50 stotinki
1 x 5 stotinki
1 x 2 stotinki
1 x 1 stotinka
Проблема идва от това, че при проверката за 1 лев, вдига брояча с 1, но не прави повторна преврка, съответно отива директно при проверката за 50 стотинки и от там идва и разликата в изходните данни:
if (change >= 1) {
onehundred++;
change -= 1;
} while (change >= 0.50) {
fifty++;
change -= 0.50;
}
Някакви идеи, как мога да го поправя или трябва да търся друго решение?
Поздрави,