Тема: Робота циклів while (?)
Ось в мене є програма, яка має виводиди мінімальну кількість монет, за допомогою яких можна видати обсяг введеної кількості грошей. Маю монети номіналом 25, 10, 5 та 1 цент. 
#include <cs50.h>
#include <stdio.h>
#include <math.h>
float get_my_float(string prompt);
int w;
int main(void)
{
    float m = get_my_float("Change owed: ");
    int coins = round(m * 100);
    
    while(coins > 25)
    {
        w++;
        coins -= 25;
    }
    while(coins > 10)
    {
        w++;
        coins -= 10;
    }
    while(coins > 5)
    {
        w++;
        coins -= 5;
    }
    while(coins > 1)
    {
        w++;
        coins--;
    }
    printf("%i\n", w);
}
float get_my_float(string prompt)
{
    int n;
    do
    {
        n = get_float("%s", prompt);
    }
    while(n < 0 );
    return n;
}Яке б число я не вводила, програма видає 0, що, звичайно є неправильним. Маю припущення, що я не правильно використала цикли while, але помилка може були і в іншому місці.
Дякую.