#include <stdio.h>
/* constants */
#define NUM_EMPL 5
#define OT_RATE 1.5f
#define STD_HOURS 40.0f
float getHours ( long clockNumber) ;
void printData ( long int clockNumber[ ] , float wageRate[ ] , float hours[ ] ,
float overtime[ ] , float gross[ ] , int size) ;
int main( )
{
/* Variable Declarations */
long int clockNumber[ NUM_EMPL] = { 98401 ,526488 ,765349 ,34645 ,127615 } ; /* unique ID */
float gross[ NUM_EMPL] ; /* gross pay */
float hours[ NUM_EMPL] ; /* hours worked in a given week */
int i; /* loop and array index */
float overtime[ NUM_EMPL] ; /* overtime hours */
float wageRate[ NUM_EMPL] = { 10.60 ,9.75 ,10.50 ,12.25 ,8.35 } ; /* hourly wage rate */
float emp_count; /* number of employees to process */
float overtime_pay;
float standard_pay;
for ( i = 0 ; i < NUM_EMPL; ++ i)
{
printf ( "\n Enter number of hours worked: " ) ;
/* get hours for employee */
hours[ i] = getHours ( clockNumber[ i] ) ;
/* based on hours, figure out overtime and gross */
if ( hours [ i] > STD_HOURS)
{
standard_pay = STD_HOURS * wageRate [ i] ;
overtime [ i] = hours [ i] - STD_HOURS;
overtime_pay = overtime [ i] * ( wageRate [ i] * OT_RATE) ;
}
else /* no OT */
{
standard_pay = wageRate [ i] * hours [ i] ;
overtime_pay = 0 ;
overtime [ i] = 0 ;
}
gross [ i] = standard_pay + overtime_pay; /*the formula for gross is here, why isn't program picking up gross*/
printf ( "\n \n ----------------------------------------------------------" ) ;
printf ( "\n Clock # Wage Hours overtimeHours Gross" ) ;
printf ( "\n ----------------------------------------------------------" ) ;
printf ( "\n %06i %5.2f %5.1f %5.1f %7.2f\n " ,
clockNumber [ i] , wageRate [ i] , hours [ i] , overtime [ i] , gross[ i] ) ;
} /* for */
/* Print all the employees - call by reference */
printData ( clockNumber, wageRate, hours,
overtime, gross, NUM_EMPL) ;
return ( 0 ) ;
}
/*what is this extra half of the program what purpose does this serve?*/
float getHours ( long int clockNumber)
{
float hoursWorked; /* hours worked in a given week */
/* Get Hours for each employee */
printf ( "\n Enter hours worked by emp # %06li: " , clockNumber) ;
scanf ( "%f" , & hoursWorked) ;
return ( hoursWorked) ;
}
void printData ( long int clockNumber[ ] , float wageRate[ ] , float hours[ ] ,
float overtime[ ] , float gross[ ] , int size)
{
for ( int i = 0 ; i < size; ++ i)
{
printf ( "\n %06i %5.2f %5.1f %5.1f %7.2f\n " ,
clockNumber [ i] , wageRate [ i] , hours [ i] , overtime [ i] , gross[ i] ) ;
}
}
CgojaW5jbHVkZSA8c3RkaW8uaD4gCgoKLyogY29uc3RhbnRzICovCiNkZWZpbmUgTlVNX0VNUEwgNSAKI2RlZmluZSBPVF9SQVRFIDEuNWYgCiNkZWZpbmUgU1REX0hPVVJTIDQwLjBmCgoKCmZsb2F0IGdldEhvdXJzIChsb25nIGNsb2NrTnVtYmVyKTsKdm9pZCBwcmludERhdGEgKGxvbmcgaW50IGNsb2NrTnVtYmVyW10sIGZsb2F0IHdhZ2VSYXRlW10sIGZsb2F0IGhvdXJzW10sCiAgICAgICAgICAgICAgICBmbG9hdCBvdmVydGltZVtdLCBmbG9hdCBncm9zc1tdLCBpbnQgc2l6ZSk7CgogCgppbnQgbWFpbigpIAp7IAoKICAgIC8qIFZhcmlhYmxlIERlY2xhcmF0aW9ucyAqLyAKCiAgICBsb25nICBpbnQgY2xvY2tOdW1iZXJbTlVNX0VNUExdID0gezk4NDAxLDUyNjQ4OCw3NjUzNDksMzQ2NDUsMTI3NjE1fTsgLyogdW5pcXVlIElEICovCiAgICBmbG9hdCBncm9zc1tOVU1fRU1QTF07ICAgICAvKiBncm9zcyBwYXkgKi8KICAgIGZsb2F0IGhvdXJzW05VTV9FTVBMXTsgICAgIC8qIGhvdXJzIHdvcmtlZCBpbiBhIGdpdmVuIHdlZWsgKi8KICAgIGludCAgIGk7ICAgICAgICAgICAgICAgICAgIC8qIGxvb3AgYW5kIGFycmF5IGluZGV4ICovCiAgICBmbG9hdCBvdmVydGltZVtOVU1fRU1QTF07ICAvKiBvdmVydGltZSBob3VycyAqLwogICAgZmxvYXQgd2FnZVJhdGVbTlVNX0VNUExdID0gezEwLjYwLDkuNzUsMTAuNTAsMTIuMjUsOC4zNX07IC8qIGhvdXJseSB3YWdlIHJhdGUgKi8KICAgCiAgICBmbG9hdCAgIGVtcF9jb3VudDsgICAgIC8qIG51bWJlciBvZiBlbXBsb3llZXMgdG8gcHJvY2VzcyAqLyAKICAgIGZsb2F0ICAgb3ZlcnRpbWVfcGF5OwogICAgZmxvYXQgICBzdGFuZGFyZF9wYXk7CiAgICAKICAgIGZvciAoaSA9IDA7IGkgPCBOVU1fRU1QTDsgKytpKQogICAgewogICAgICAgcHJpbnRmICgiXG5FbnRlciBudW1iZXIgb2YgaG91cnMgd29ya2VkOiAiKTsgIAoKICAgICAgICAvKiBnZXQgaG91cnMgZm9yIGVtcGxveWVlICovCiAgICAgICAgaG91cnNbaV0gPSBnZXRIb3VycyAoY2xvY2tOdW1iZXJbaV0pOyAgCiAgICAgICAgCiAgICAgICAgLyogYmFzZWQgb24gaG91cnMsIGZpZ3VyZSBvdXQgb3ZlcnRpbWUgYW5kIGdyb3NzICovCiAgICAgICAgaWYgKGhvdXJzIFtpXSA+IFNURF9IT1VSUykKICAgICAgICB7CiAgICAgICAgCiAgICAgICAgICAgIHN0YW5kYXJkX3BheSA9IFNURF9IT1VSUyAqIHdhZ2VSYXRlIFtpXTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICBvdmVydGltZSBbaV0gPSBob3VycyBbaV0gLSBTVERfSE9VUlM7CgogICAgICAgICAgICBvdmVydGltZV9wYXkgPSBvdmVydGltZSBbaV0gKiAod2FnZVJhdGUgW2ldICogT1RfUkFURSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgIC8qIG5vIE9UICovCiAgICAgICAgewoKICAgICAgICAgICAgc3RhbmRhcmRfcGF5ID0gd2FnZVJhdGUgW2ldICogaG91cnMgW2ldOwoKICAgICAgICAgICAgb3ZlcnRpbWVfcGF5ID0gMDsKICAgICAgICAgICAgCiAgICAgICAgICAgIG92ZXJ0aW1lIFtpXSA9IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGdyb3NzIFtpXSA9IHN0YW5kYXJkX3BheSArIG92ZXJ0aW1lX3BheTsgLyp0aGUgZm9ybXVsYSBmb3IgZ3Jvc3MgaXMgaGVyZSwgd2h5IGlzbid0IHByb2dyYW0gcGlja2luZyB1cCBncm9zcyovCgogICAgICAgIHByaW50ZiAoIlxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7ICAKCiAgICAgICAgcHJpbnRmICgiXG5DbG9jayAjIFdhZ2UgSG91cnMgb3ZlcnRpbWVIb3VycyBHcm9zcyIpOyAgCgogICAgICAgIHByaW50ZiAoIlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIpOyAgCgoKICAgICAgICBwcmludGYgKCJcbiUwNmkgJTUuMmYgJTUuMWYgJTUuMWYgJTcuMmZcbiIsCiAgICAgICAgY2xvY2tOdW1iZXIgW2ldLCB3YWdlUmF0ZSBbaV0sIGhvdXJzIFtpXSwgb3ZlcnRpbWUgW2ldLCBncm9zc1tpXSk7IAogICAgfSAvKiBmb3IgKi8KCiAgICAvKiBQcmludCBhbGwgdGhlIGVtcGxveWVlcyAtIGNhbGwgYnkgcmVmZXJlbmNlICovCiAgICBwcmludERhdGEgKGNsb2NrTnVtYmVyLCB3YWdlUmF0ZSwgaG91cnMsCiAgICAgICAgICAgICAgIG92ZXJ0aW1lLCBncm9zcywgTlVNX0VNUEwpOwoKICAgIHJldHVybiAoMCk7IAoKfSAKCgovKndoYXQgaXMgdGhpcyBleHRyYSBoYWxmIG9mIHRoZSBwcm9ncmFtIHdoYXQgcHVycG9zZSBkb2VzIHRoaXMgc2VydmU/Ki8KCgpmbG9hdCBnZXRIb3VycyAobG9uZyBpbnQgY2xvY2tOdW1iZXIpIAp7IAoKICAgIGZsb2F0IGhvdXJzV29ya2VkOyAvKiBob3VycyB3b3JrZWQgaW4gYSBnaXZlbiB3ZWVrICovIAoKICAgIC8qIEdldCBIb3VycyBmb3IgZWFjaCBlbXBsb3llZSAqLyAKICAgIHByaW50ZigiXG5FbnRlciBob3VycyB3b3JrZWQgYnkgZW1wICMgJTA2bGk6ICIsIGNsb2NrTnVtYmVyKTsgCiAgICBzY2FuZiAoIiVmIiwgJmhvdXJzV29ya2VkKTsgCgogICAgcmV0dXJuIChob3Vyc1dvcmtlZCk7IAp9IAoKCgp2b2lkIHByaW50RGF0YSAobG9uZyBpbnQgY2xvY2tOdW1iZXJbXSwgZmxvYXQgd2FnZVJhdGVbXSwgZmxvYXQgaG91cnNbXSwKICAgICAgICAgICAgICAgIGZsb2F0IG92ZXJ0aW1lW10sIGZsb2F0IGdyb3NzW10sIGludCBzaXplKQp7IAoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQogICAgewogCiAgICAgICAgcHJpbnRmICgiXG4lMDZpICU1LjJmICU1LjFmICU1LjFmICU3LjJmXG4iLAogICAgICAgICAgICBjbG9ja051bWJlciBbaV0sIHdhZ2VSYXRlIFtpXSwgaG91cnMgW2ldLCBvdmVydGltZSBbaV0sIGdyb3NzW2ldKTsgCiAgICB9CiAgIAp9IAoKCgoKCgo=