Note that there are some explanatory texts on larger screens.

plurals
  1. POPassing A Structure Through A Function
    text
    copied!<p>I want to fill in the third parameter for each array of the structure employeeData (hours).</p> <p>I would want to prompt for manual input to the hours section by asking "Please input the hours for employee x" like shown below. It doesn't seem to work though.</p> <pre><code>void Get_input (long id_number[], float hours[], int num_empl) { /*Local Variable Declaration */ int i; /* Variable used in loop counter */ /* Gets number of employee hours and stores them in an array. */ for (i = 0; i &lt; num_empl; ++i) { printf("\nEnter the numbers of hours worked by employee # %06li: ", employeeData[i].id_number); scanf ("%f", &amp;employeeData[i].hours); } printf("\n\n"); } </code></pre> <p>Here is my full "program" so far:</p> <pre><code>/*Define and Includes */ #include &lt;stdio.h&gt; #include &lt;cstdlib&gt; /* Define Constants */ #define NUM_EMPL 5 #define OVERTIME_RATE 1.5f #define STD_WORK_WEEK 40f /* Define a global structure to pass employee data between functions */ struct employee { long id_number; float wage; float hours; float overtime; float gross; }; /* define prototypes here for each function except main */ /************************************************************************/ /* Function: Get_input */ /* */ /* Purpose: Obtains input from user, the number of hours worked per */ /* employee and stores the results in an array that is */ /* passed back to the calling program by reference. */ /* */ /* Parameters: clockNum- Array of employee clock numbers. */ /* hours- Array of number of hours worked by an employee */ /* size- Number of employees to process */ /* */ /* Returns: Nothing, since 'clockNum' &amp; 'hours' arrays are passed by */ /* reference. */ /************************************************************************/ void Get_input (long id_number[], float hours[], int num_empl) { /*Local Variable Declaration */ int i; /* Variable used in loop counter */ /* Gets number of employee hours and stores them in an array. */ for (i = 0; i &lt; num_empl; ++i) { printf("\nEnter the numbers of hours worked by employee # %06li: ", employeeData[i].id_number); scanf ("%f", &amp;employeeData[i].hours); } printf("\n\n"); } void Output_results_screen (struct employee [ ], int num_empl); /************************************************************************* ** Function: Output_results_screen ** ** Purpose: Outputs to screen in a table format the following ** information about an employee: Clock, Wage, ** Hours, Overtime, and Gross Pay. ** ** Parameters: employeeData - an array of structures containing ** employee information ** size - number of employees to process ** ** Returns: Nothing (void) ** *************************************************************************/ void Output_results_screen ( struct employee employeeData[], int num_empl ) { int i; /* loop index */ printf ("-----------------------------------------\n"); /*Print Header To Screen */ printf ("Clock# \t Wage \t Hours \t OT \t Gross\n"); printf ("-----------------------------------------\n"); /* printf information about each employee */ for (i = 0; i &lt; num_empl ; ++i) { printf("%06li %5.2f %4.1f %4.1f %8.2f \n", employeeData[i].id_number, employeeData[i].wage, employeeData[i].hours, employeeData[i].overtime, employeeData[i].gross); } /* for */ } /* Output_results_screen */ int main () { /* Variable Declaration and initialization */ struct employee employeeData[NUM_EMPL] = { { 98401, 10.60 }, { 526488, 9.75 }, { 765349, 10.50 }, { 34645, 12.25 }, { 127615, 8.35 } }; /* Call various functions needed to reading, calculating, and printing as needed */ /* Function call to get input from user. */ Get_input (id_number, hours, NUM_EMPL); /* Function call to output results to the screen in table format. */ Output_results_screen (employeeData, NUM_EMPL); system("pause"); return(0); /* success */ } /* main */ </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload