Skip to main content
1 of 2

problem set cash: why am I getting really high numbers in my return?

I'm very new to coding and I'm stuck on the cash problem set. It keeps returning a very high number and not returning cash. my code is below

#include <cs50.h>

#include <stdio.h>

int get_cents(void); int calculate_quarters(int cents); int calculate_dimes(int cents); int calculate_nickels(int cents); int calculate_pennies(int cents);

int main(void) { // Ask how many cents the customer is owed int cents = get_cents();

// Calculate the number of quarters to give the customer
int quarters = calculate_quarters(cents);
cents = cents - quarters * 25;

// Calculate the number of dimes to give the customer
int dimes = calculate_dimes(cents);
cents = cents - dimes * 10;

// Calculate the number of nickels to give the customer
int nickels = calculate_nickels(cents);
cents = cents - nickels * 5;

// Calculate the number of pennies to give the customer
int pennies = calculate_pennies(cents);
cents = cents - pennies * 1;

// Sum coins
int coins = quarters + dimes + nickels + pennies;

// Print total number of coins to give the customer
printf("%i\n", coins);

}

int get_cents(void) { int cents; do { cents = get_int("change owed: "); } while (cents <= 1); return cents; }

int calculate_quarters(int cents) { int quarters;

while (cents >= 25)
{
  quarters = (cents / 25);
  quarters++;
}
return quarters;

}

int calculate_dimes(int cents) { // TODO int dimes;

while(cents >= 10)
{
    dimes = (cents / 10);
    dimes++;
}
return dimes;

}

int calculate_nickels(int cents) { // TODO int nickles;

while(cents >= 5)
{
   nickles = (cents / 5);
   nickles++;
}
return nickles;

}

int calculate_pennies(int cents) { // TODO int pennies;

while(cents >= 1)
{
    pennies = (cents / 1);
    pennies++;
}
return pennies;

}