I have a program that ive been working on, with a tremendous amount of help from someone. My proffesor taught us about function last friday( well, he began to) . Anyways he said pretty much that if we wanted to try and turn parts of it into functions with help,or if we had a friend to demonstrate it for us it would be a big help for the upcoming class on tuesday. well heres is what functions he said to try, and the code will follow. I dont know much about function yet so could someone show me how to do these function, or give me a big push in the right direction?

you are to implement the cash register program
using multiple functions. this is not homework, if possible ask an experienced class mate or relative to demonstrate these to you before class on tuesday.
using the following functions:
• Implement a main function that inputs the number of grocery items and the amount paid by the
user.
• Implement a function that inputs the price of each individual grocery item. This function
should accept the number of grocery items as an input argument. In addition this function
should return the total cost of the items.
• Implement a function for computing the number of quarters that are returned. This function
must accept the amount of change returned as an input argument. It must also accept the
number of quarters remaining in the bank as another argument. Finally, this function should
return the number of quarters that can be returned.
• Implement functions for computing the number of dimes, nickels, and pennies that are similar
to the previous function. By similar, I mean that they must accept similar types of arguments
and return similar types of values as the above function. The exception to this is the “pennies”
function which is explained in the next point.
• The “pennies” function should also be able to indicate if it is possible to return the exact
amount to the user (new requirement). If there are not enough pennies in the bank to cover the
amount of change needed to be returned to the user, your program should display an error
message. The pennies function can indicate this situation by returning a -1 back to its calling
function.
• Implement a function whose sole purpose is to display output to the user. It should accept four
arguments which are the numbers of quarters, dimes, nickels, and pennies, respectively. It
should output the information to the screen. This function should not return any value back to
the user.

Code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>  // Needed for modff
#include <conio.h> // Needed for getche

#define FALSE 0
#define TRUE !FALSE
#define DEBUG

int bDenominationCalculation(unsigned long ulCentsLeft);

int main(void)
{ 
    char ch;
    int numItems = 0;
    float total = 0.0; 
    float price = 0.0, amtPaid = 0.0,  change = 0.0;
    unsigned long centsLeft = 0;       // cents left to pay in change
    float cents;

    do
    {
        printf("Please enter the number of grocery items>");
        scanf("%d", &numItems);
        while (numItems != 0)
        {
            printf("\nPlease enter the price for your item>");
            scanf("%f", &price);
            total += price;
            numItems--;
        }
        printf("\nPlease enter the amount paid>");
        scanf("%f", &amtPaid);
        change = amtPaid - total;
        printf("\nchange is %0.02f\n", change);
        cents = change; // Separate Dollars and cents
        centsLeft = (cents * 100);
        printf(" cents = %0.02f centsLeft = %d\n", cents*100, centsLeft);
        if( change > 0.0 )                 // optional denomination breakdown 
        {  
            if(bDenominationCalculation(centsLeft))
            {
                printf("program ending, change cannot be returned\n");
                break;
            }
        }
        printf("Hit the  0 key to e(X)it, any other key to repeat procedure ");
        ch=toupper(getche());
        printf("\n");
        if (ch=='0') {
            printf("Program finished");
            break;
        }
        total = 0.0;
    }
    while (TRUE);
    return 0;
}  


int bDenominationCalculation(unsigned long ulCentsLeft)
{
    unsigned long uliTempCalc = 0L;
    static struct SBank
    {
        unsigned long uliQuarter;
        unsigned long uliDime;
        unsigned long uliNickel;
        unsigned long uliPenny;
    }SBankDenom = {10, 10, 10, 10};

    if( SBankDenom.uliQuarter &&  (ulCentsLeft / 25))
    {  
        if(SBankDenom.uliQuarter  >=  ulCentsLeft / 25)
        {
            printf("25%c - %u\n", 155, ulCentsLeft / 25); 
            SBankDenom.uliQuarter -= ulCentsLeft / 25;
            ulCentsLeft -= 25 * ( ulCentsLeft / 25 );
        }
        else
        {
            ulCentsLeft -= (SBankDenom.uliQuarter * 25 );
            printf("25%c - %u\n", 155,SBankDenom.uliQuarter ); 
            SBankDenom.uliQuarter  = 0;
        }
    }                                                    
    if( SBankDenom.uliDime && (ulCentsLeft / 10) )         
    {  
        if(SBankDenom.uliDime  >=  ulCentsLeft / 10)
        {
            printf("10%c - %u\n", 155, ulCentsLeft / 10);
            SBankDenom.uliDime -= ulCentsLeft/ 10;
            ulCentsLeft -= 10 * ( ulCentsLeft / 10 );
        }
        else
        {
            ulCentsLeft -= (SBankDenom.uliDime * 10 );
            printf("10%c - %u\n", 155,SBankDenom.uliDime );
            SBankDenom.uliDime  = 0;
        }
    }
    if( SBankDenom.uliNickel && (ulCentsLeft / 5) )
    {  
        if(SBankDenom.uliNickel  >=  ulCentsLeft / 5)
        {
            printf("5%c - %u\n", 155, ulCentsLeft / 5);
            SBankDenom.uliNickel -= ulCentsLeft/ 5;
            ulCentsLeft -= 5 * ( ulCentsLeft / 5 );
        }
        else
        {
            ulCentsLeft -= (SBankDenom.uliNickel * 5 );
            printf("5%c - %u\n", 155, SBankDenom.uliNickel);
            SBankDenom.uliNickel  = 0;
        }
    }
    if( ulCentsLeft && SBankDenom.uliPenny )
    {  
        if(SBankDenom.uliPenny  >=  ulCentsLeft )
        {
            printf("1%c - %u\n", 155, ulCentsLeft);
            SBankDenom.uliPenny -= ulCentsLeft;
            ulCentsLeft -=  ulCentsLeft ;
        }
        else
        {
            ulCentsLeft -= (SBankDenom.uliPenny );
            printf("1%c - %u\n", 155,SBankDenom.uliPenny );
            SBankDenom.uliPenny  = 0;
        }
    }

    #ifdef DEBUG
    printf("Static struct variables:\n");
    printf("Q  %u\n",SBankDenom.uliQuarter);
    printf("D  %u\n",SBankDenom.uliDime);
    printf("N  %u\n",SBankDenom.uliNickel);
    printf("P  %u\n",SBankDenom.uliPenny);
    #endif
    if(ulCentsLeft)
        return TRUE;
    else
        return FALSE;
}