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;
}
``````

## 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.

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);
get_input(&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.