我想为结构employeeData(小时)的每个数组填写第三个参数。
我想通过询问“请输入员工 x 的小时数”来提示手动输入小时数部分,如下所示。但它似乎不起作用。
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 < num_empl; ++i)
{
printf("\nEnter the numbers of hours worked by employee # %06li: ",
employeeData[i].id_number);
scanf ("%f", &employeeData[i].hours);
}
printf("\n\n");
}
到目前为止,这是我的完整“程序”:
/*Define and Includes */
#include <stdio.h>
#include <cstdlib>
/* 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' & '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 < num_empl; ++i)
{
printf("\nEnter the numbers of hours worked by employee # %06li: ",
employeeData[i].id_number);
scanf ("%f", &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 < 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 */