Code:
#include <stdio.h>
int change(float total, int *quarters, int *dimes, int *nickels, int *pennies);
void print(float total, int quarters, int dimes, int nickels, int pennies);
int main(void)
{
int quarters, dimes, nickels, pennies;
float total;
total = 1.88;
change(total, &quarters, &dimes, &nickels, &pennies);
print(total, quarters, dimes, nickels, pennies);
total = 0.32;
change(total, &quarters, &dimes, &nickels, &pennies);
print(total, quarters, dimes, nickels, pennies);
printf("\nPlease enter an amount of money: \n");
scanf("%f", &total);
change(total, &quarters, &dimes, &nickels, &pennies);
print(total, quarters, dimes, nickels, pennies);
return 0;
}
int change(float total, int *quarters, int *dimes, int *nickels, int *pennies)
{
if( total >= 0.25 )
*quarters = (total / 0.25);
if( total >= 0.10 )
*dimes = (total - (*quarters * 0.25)) / 0.10;
if( total >= 0.05 )
*nickels = (total - (*quarters * 0.25) - (*dimes * 0.10)) / 0.05;
if( total >= 0.01 )
*pennies = (total - (*quarters * 0.25) - (*dimes * 0.10) - (*nickels * 0.05)) / 0.01 + .005;
return 0;
}
void print(float total, int quarters, int dimes, int nickels, int pennies)
{
printf("\nTOTAL VALUE ENTERED: $%.2f", total);
printf("\n%3d quarters\n", quarters);
printf("\n%3d dimes\n", dimes);
printf("\n%3d nickels\n", nickels);
printf("\n%3d pennies\n", pennies);
}
As for your problem: you failed to set all those variables to 0. In fact, you should do so at the start of the change function, e.g., assign *quarters = 0;