#include <stdio.h>
// constants to use
#define SIZE 5 // number of employees to process
#define STD_HOURS 40.0 // normal work week hours before overtime
#define OT_RATE 1.5 // time and half overtime setting
int main( )
{
// Declare variables needed for the program
// unique employee identifier
long int clockNumber [ SIZE] = { 98401 , 526488 , 765349 , 34645 , 127615 } ;
float grossPay [ SIZE] ; // weekly gross pay - normal pay + overtime pay
float hours [ SIZE] ; // hours worked in a given week
int i; // loop and array index
float normalPay [ SIZE] ; // normal weekly pay without any overtime
float overtimeHrs[ SIZE] ; // overtime hours worked in a given week
float overtimePay [ SIZE] ; // overtime pay for a given week
// hourly pay for each employee
float wageRate [ SIZE] = { 10.6 , 9.75 , 10.5 , 12.25 , 8.35 } ;
printf ( "\n *** Pay Calculator ***\n \n " ) ;
// Process each employee one at a time
for ( i = 0 ; i < SIZE; i++ )
{
// Prompt and Read in hours worked for employee
printf ( "Enter hours worked for employee %06ld: " , clockNumber
[ i
] ) ;
// Calculate overtime and gross pay for employee
if ( hours[ i] > STD_HOURS)
{
overtimeHrs[ i] = hours[ i] - STD_HOURS;
// Calculate arrays normalPay and overtimePay with overtime
normalPay[ i] = STD_HOURS * wageRate[ i] ;
overtimePay[ i] = overtimeHrs[ i] * ( wageRate[ i] * OT_RATE) ;
}
else // no OT
{
overtimeHrs[ i] = 0.0 ;
// Calculate arrays normalPay and overtimePay without overtime
normalPay[ i] = hours[ i] * wageRate[ i] ;
overtimePay[ i] = 0.0 ;
}
// Calculate Gross Pay
grossPay[ i] = normalPay[ i] + overtimePay[ i] ;
}
// Print a nice table header
printf ( "\n ----------------------------------------------------------------------------------------\n " ) ; printf ( "%-10s %-10s %-10s %-12s %-12s %-12s %-10s\n " , "Clock #" , "Wage Rate" , "Hours" , "Normal Pay" , "OT Hours" , "OT Pay" , "Gross Pay" ) ;
printf ( "----------------------------------------------------------------------------------------\n " ) ;
// Access each employee and print to screen
for ( i = 0 ; i < SIZE; i++ )
{
printf ( "%-10ld $%-9.2f %-10.1f $%-11.2f %-12.1f $%-11.2f $%-9.2f\n " , clockNumber[ i] , wageRate[ i] , hours[ i] , normalPay[ i] ,
overtimeHrs[ i] , overtimePay[ i] , grossPay[ i] ) ;
}
printf ( "----------------------------------------------------------------------------------------\n " ) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyBjb25zdGFudHMgdG8gdXNlCiNkZWZpbmUgU0laRSA1ICAgICAgICAgICAvLyBudW1iZXIgb2YgZW1wbG95ZWVzIHRvIHByb2Nlc3MKI2RlZmluZSBTVERfSE9VUlMgNDAuMCAgIC8vIG5vcm1hbCB3b3JrIHdlZWsgaG91cnMgYmVmb3JlIG92ZXJ0aW1lCiNkZWZpbmUgT1RfUkFURSAxLjUgICAgICAvLyB0aW1lIGFuZCBoYWxmIG92ZXJ0aW1lIHNldHRpbmcKCmludCBtYWluKCkKewogICAgLy8gRGVjbGFyZSB2YXJpYWJsZXMgbmVlZGVkIGZvciB0aGUgcHJvZ3JhbQogICAgLy8gdW5pcXVlIGVtcGxveWVlIGlkZW50aWZpZXIKICAgIGxvbmcgaW50IGNsb2NrTnVtYmVyIFtTSVpFXSA9IHs5ODQwMSwgNTI2NDg4LCA3NjUzNDksIDM0NjQ1LCAxMjc2MTV9OwogCiAgICBmbG9hdCBncm9zc1BheSBbU0laRV07ICAgICAvLyB3ZWVrbHkgZ3Jvc3MgcGF5IC0gbm9ybWFsIHBheSArIG92ZXJ0aW1lIHBheSAgICAgICAgIAogICAgZmxvYXQgaG91cnMgW1NJWkVdOyAgICAgICAgLy8gaG91cnMgd29ya2VkIGluIGEgZ2l2ZW4gd2VlawogICAgaW50IGk7ICAgICAgICAgICAgICAgICAgICAgLy8gbG9vcCBhbmQgYXJyYXkgaW5kZXgKICAgIGZsb2F0IG5vcm1hbFBheSBbU0laRV07ICAgIC8vIG5vcm1hbCB3ZWVrbHkgcGF5IHdpdGhvdXQgYW55IG92ZXJ0aW1lCiAgICBmbG9hdCBvdmVydGltZUhyc1tTSVpFXTsgICAvLyBvdmVydGltZSBob3VycyB3b3JrZWQgaW4gYSBnaXZlbiB3ZWVrCiAgICBmbG9hdCBvdmVydGltZVBheSBbU0laRV07ICAvLyBvdmVydGltZSBwYXkgZm9yIGEgZ2l2ZW4gd2VlawoKICAgIC8vIGhvdXJseSBwYXkgZm9yIGVhY2ggZW1wbG95ZWUKICAgIGZsb2F0IHdhZ2VSYXRlIFtTSVpFXSA9IHsxMC42LCA5Ljc1LCAxMC41LCAxMi4yNSwgOC4zNX07IAoKICAgIHByaW50ZiAoIlxuKioqIFBheSBDYWxjdWxhdG9yICoqKlxuXG4iKTsKCiAgICAvLyBQcm9jZXNzIGVhY2ggZW1wbG95ZWUgb25lIGF0IGEgdGltZQogICAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkrKykKICAgIHsKICAgICAgICAvLyBQcm9tcHQgYW5kIFJlYWQgaW4gaG91cnMgd29ya2VkIGZvciBlbXBsb3llZQogICAgICAgIHByaW50ZigiRW50ZXIgaG91cnMgd29ya2VkIGZvciBlbXBsb3llZSAlMDZsZDogIiwgY2xvY2tOdW1iZXJbaV0pOwogICAgICAgIHNjYW5mKCIlZiIsICZob3Vyc1tpXSk7CgogICAgICAgIC8vIENhbGN1bGF0ZSBvdmVydGltZSBhbmQgZ3Jvc3MgcGF5IGZvciBlbXBsb3llZQogICAgICAgIGlmIChob3Vyc1tpXSA+IFNURF9IT1VSUykKICAgICAgICB7CiAgICAgICAgICAgIG92ZXJ0aW1lSHJzW2ldID0gaG91cnNbaV0gLSBTVERfSE9VUlM7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBDYWxjdWxhdGUgYXJyYXlzIG5vcm1hbFBheSBhbmQgb3ZlcnRpbWVQYXkgd2l0aCBvdmVydGltZQogICAgICAgICAgICBub3JtYWxQYXlbaV0gPSBTVERfSE9VUlMgKiB3YWdlUmF0ZVtpXTsKICAgICAgICAgICAgb3ZlcnRpbWVQYXlbaV0gPSBvdmVydGltZUhyc1tpXSAqICh3YWdlUmF0ZVtpXSAqIE9UX1JBVEUpOwogICAgICAgIH0KICAgICAgICBlbHNlIC8vIG5vIE9UCiAgICAgICAgewogICAgICAgICAgICBvdmVydGltZUhyc1tpXSA9IDAuMDsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBhcnJheXMgbm9ybWFsUGF5IGFuZCBvdmVydGltZVBheSB3aXRob3V0IG92ZXJ0aW1lCiAgICAgICAgICAgIG5vcm1hbFBheVtpXSA9IGhvdXJzW2ldICogd2FnZVJhdGVbaV07CiAgICAgICAgICAgIG92ZXJ0aW1lUGF5W2ldID0gMC4wOwogICAgICAgIH0KCiAgICAgICAgLy8gQ2FsY3VsYXRlIEdyb3NzIFBheQogICAgICAgIGdyb3NzUGF5W2ldID0gbm9ybWFsUGF5W2ldICsgb3ZlcnRpbWVQYXlbaV07CiAgICB9CgogICAgLy8gUHJpbnQgYSBuaWNlIHRhYmxlIGhlYWRlcgogICAgcHJpbnRmKCJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwogICAgcHJpbnRmKCIlLTEwcyAlLTEwcyAlLTEwcyAlLTEycyAlLTEycyAlLTEycyAlLTEwc1xuIiwgCiAgICAgICAgICAgIkNsb2NrICMiLCAiV2FnZSBSYXRlIiwgIkhvdXJzIiwgIk5vcm1hbCBQYXkiLCAiT1QgSG91cnMiLCAiT1QgUGF5IiwgIkdyb3NzIFBheSIpOwogICAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKCiAgICAvLyBBY2Nlc3MgZWFjaCBlbXBsb3llZSBhbmQgcHJpbnQgdG8gc2NyZWVuCiAgICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKQogICAgewogICAgICAgIHByaW50ZigiJS0xMGxkICQlLTkuMmYgJS0xMC4xZiAkJS0xMS4yZiAlLTEyLjFmICQlLTExLjJmICQlLTkuMmZcbiIsCiAgICAgICAgICAgICAgIGNsb2NrTnVtYmVyW2ldLCB3YWdlUmF0ZVtpXSwgaG91cnNbaV0sIG5vcm1hbFBheVtpXSwgCiAgICAgICAgICAgICAgIG92ZXJ0aW1lSHJzW2ldLCBvdmVydGltZVBheVtpXSwgZ3Jvc3NQYXlbaV0pOwogICAgfQogICAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKCiAgICByZXR1cm4gMDsKfQ==