Ok so I finally got my head almost wrapped around this. The last computation for the pennies doesn't produce the correct results. I know the problem has to do with the function but not sure why. Any ideas?
Code:
#include <stdio.h>
int change (float total, int *quarters, int *dimes, int *nickels, int *pennies); /* function prototype */
int main()
{
int quarters, dimes, nickels, pennies;
float total;
{
total = 1.88;
change (total, &quarters, &dimes, &nickels, &pennies);
printf("TOTAL VALUE ENTERED: $%6.2f", total);
printf("\n%d quarters\n", quarters);
printf("\n%3d dimes\n", dimes);
printf("\n%3d nickels\n", nickels);
printf("\n%3d pennies\n", pennies);
}
{
total=0.32;
change(total, &quarters, &dimes, &nickels, &pennies);
printf("\nTOTAL VALUE ENTERED: %6.2f",total);
printf("\n%d quarters\n",quarters);
printf("\n%d dimes\n", dimes);
printf("\n%d nickles\n", nickels);
printf("\n%d pennies\n",pennies);
}
{
printf("\nPlease enter an amount of money: \n");
scanf("%f", &total);
change(total, &quarters, &dimes, &nickels, &pennies);
printf("TOTAL VALUE ENTERED: %6.2f",total);
printf("\n%d quarters\n",quarters);
printf("\n%d dimes\n",dimes);
printf("\n%d nickles\n",nickels);
printf("\n%d pennies\n",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.04 >0)
*pennies = (total - (*quarters * 0.25) - (*dimes * 0.10) - (*nickels * 0.05))/0.01;
return;