Okay so im making this program to accept three integers for two different users (# of units for three quarters, for two people). Then im multiplying that number by the unit cost of 12. Then finally i divide that by 2 to get the average for both people. This is my code and i messed up somewhere, ive been working on it for hours and im stuck!

/*  This program uses three different functions to calculate the average
    cost of a 3 quarter college school year for two people                  */
/*  Written by: Matt Farrell                                                */
/*  Date: 05/8/04                                                           */

#include <stdio.h>
#define UNIT_FEE 12

/*Prototype Declarations*/

int get_input (int *firstTerm, int *secondTerm, int *thirdTerm,
               int *fourthTerm, int *fifthTerm, int *sixthTerm);

float avg_fee (float avg_fee);


int totalFee (int firstTerm, int secondTerm, int thirdTerm, int *totalFee);

int totalFee2 (int forthTerm, int fifthTerm, int sixthTerm, int *totalFee2);


int termFee  (int units);

int TermFee2 (int units);



void print (float avg);

int main (void)
{
    /*local definitions*/

    int firstTerm, secondTerm, thirdTerm;
    int fourthTerm, fifthTerm, sixthTerm;

    int termFee, termFee2;
    float totalFee, totalFee2;
    float avg;



    /*Statements*/
    get_input (&fourthTerm, &fifthTerm, &sixthTerm);
    get_input (&fourthTerm, &fifthTerm, &sixthTerm);
    avg_fee (avg);
    print (avg_fee);
    return 0;
}



void get_input (int *firstTerm, int *secondTerm, int *thirdTerm)

{

    printf ("Please input the number of units (ex 10/12/10):  ");
    scanf ("%d/%d/%d", firstTerm, secondTerm, thirdTerm);


    return;
}


void get_input (int *fourthTerm, int *fifthTerm, int *sixthTerm)

{

    printf ("Please input the number of units (ex 10/12/10):  ");
    scanf ("%d/%d/%d", fourthTerm, fifthTerm, sixthTerm);


    return;
}   


    /*Calculate Fee*/
int totalFee (int firstTerm, int secondTerm, int thirdTerm, int *totalFee)

{
    *totalFee = termFee (firstTerm) + termFee (secondTerm) + termFee (thirdTerm);

    return fee;
}

int totalFee2 (int fourthTerm, int fifthTerm, int sixthTerm, int *totalFee2)
{

    *totalFee2 = termFee (fourthTerm) + termFee (fifthTerm) + termFee (sixthTerm);

    return fee;
}





    /*Term Fee*/
    void termFee (int totalFee, int totalFee2, int *termFee, int *termFee2)
{
    /*statments*/
    *termFee = (UNIT_FEE * totalFee);

    *termFee2 = (UNIT_FEE * totalFee2);
    return;
}


    /*Average Fee*/
void avg_fee (int termFee, int termFee2, float *avg)
{
    /*statements*/
        *avg = (termFee + termFee2) / 2;
        return avg_fee;
}


    /*print*/
void print (float avg_fee)
{

    /*statements*/
    printf ("The average fee is: $%f\n", avg_fee);
    return;
}

Recommended Answers

All 3 Replies

int get_input (int *firstTerm, int *secondTerm, int *thirdTerm,
			 int *fourthTerm, int *fifthTerm, int *sixthTerm);
/* ... */
int main (void)
{
/* ... */
get_input (&fourthTerm, &fifthTerm, &sixthTerm);

If you were the compiler and the programmer told you to expect six arguments and the programmer only gave 3, would you be confused?

void get_input (int *firstTerm, int *secondTerm, int *thirdTerm)
{
/* ... */
}
void get_input (int *fourthTerm, int *fifthTerm, int *sixthTerm)
{
/* ... */
}

And then later the programmer defined the exact same function twice. Okay, compiler, which one does s/he mean?

float avg_fee (float avg_fee);
/* ... */
void avg_fee (int termFee, int termFee2, float *avg)

Then told you to expect one thing and gave you another?

I don't know. I'd listen to the compiler, which ought to be providing plenty of feedback, 'cuz I'd stop there but I think a compiler has more patience at reading this code than the programmer.


[edit]
At risk of having completely done your assignment...

#include <stdio.h>
#define UNIT_FEE 12
void get_input(int *a, int *b, int *c)
{
   printf ("Please input the number of units (ex 10/12/10): ");
   scanf ("%d/%d/%d", a, b, c);
}
int add(int a, int b, int c)
{
   return (a + b * c) * UNIT_FEE;
}
float average(int a, int b)
{
   return (a + b) / 2.0F;
}
void print(float avg_fee)
{
   printf ("The average fee is: $%.2f\n", avg_fee);
}
int main (void)
{
   int first, second, third, total1, fourth, fifth, sixth, total2;
   float avg;
   get_input(&first, &second, &third);
   total1 = add(first, second, third);
   get_input(&fourth, &fifth, &sixth);
   total2 = add(fourth, fifth, sixth);
   avg = average(total1, total2);
   print(avg);
   return 0;
}
/* my output
Please input the number of units (ex 10/12/10): 20/15/30
Please input the number of units (ex 10/12/10): 5/6/9
The average fee is: $3174.00
*/

[/edit]

:o Typo in add. Left as an exercise?

wholy crap dave you own. I really love you :cheesy:

I looked it over a bit for the past hour and realised a few errors, but this really simplifies it. Thanks a bunch!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.