#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 %ld: " , 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 ;
// Calculate arrays normalPay and overtimePay without overtime
normalPay[ i] = hours[ i] * wageRate[ i] ;
overtimePay[ i] = 0 ;
}
// Calculate Gross Pay
grossPay[ i] = normalPay[ i] + overtimePay[ i] ;
}
// Print a nice table header
printf ( "%5s %5s %5s %5s %5s %5s\n " , "Clock #" , "Wage Rate" , "Hours" , "Normal Pay" , "OT Pay" , "Gross Pay" ) ;
printf ( "%5s %5s %5s %5s %5s %5s\n " , "--------" , "---------" , "-----" , "-----------" , "-------" , "---------" ) ;
// Now that we have all the information in our arrays, we can
// Access each employee and print to screen or file
for ( i = 0 ; i < SIZE; i++ )
{
// Print employee information from your arrays
printf ( "%-5ld $%-5.2f %-5.2f $%-5.2f $%-5.2f $%-5.2f\n " , clockNumber[ i] , wageRate[ i] , hours[ i] ,
normalPay[ i] , overtimePay[ i] , grossPay[ i] ) ;
}
return ( 0 ) ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyBjb25zdGFudHMgdG8gdXNlCiNkZWZpbmUgU0laRSA1ICAgICAgICAgICAvLyBudW1iZXIgb2YgZW1wbG95ZWVzIHRvIHByb2Nlc3MKI2RlZmluZSBTVERfSE9VUlMgNDAuMCAgIC8vIG5vcm1hbCB3b3JrIHdlZWsgaG91cnMgYmVmb3JlIG92ZXJ0aW1lCiNkZWZpbmUgT1RfUkFURSAxLjUgICAgICAvLyB0aW1lIGFuZCBoYWxmIG92ZXJ0aW1lIHNldHRpbmcKCmludCBtYWluKCkKewogICAgLy8gRGVjbGFyZSB2YXJpYWJsZXMgbmVlZGVkIGZvciB0aGUgcHJvZ3JhbQogICAgLy8gdW5pcXVlIGVtcGxveWVlIGlkZW50aWZpZXIKICAgIGxvbmcgaW50IGNsb2NrTnVtYmVyIFtTSVpFXSA9IHs5ODQwMSwgNTI2NDg4LCA3NjUzNDksIDM0NjQ1LCAxMjc2MTV9OwogCiAgICBmbG9hdCBncm9zc1BheSBbU0laRV07ICAgICAvLyB3ZWVrbHkgZ3Jvc3MgcGF5IC0gbm9ybWFsIHBheSArIG92ZXJ0aW1lIHBheSAgICAgICAgIAogICAgZmxvYXQgaG91cnMgW1NJWkVdOyAgICAgICAgLy8gaG91cnMgd29ya2VkIGluIGEgZ2l2ZW4gd2VlawogICAgaW50IGk7ICAgICAgICAgICAgICAgICAgICAgLy8gbG9vcCBhbmQgYXJyYXkgaW5kZXgKICAgIGZsb2F0IG5vcm1hbFBheSBbU0laRV07ICAgIC8vIG5vcm1hbCB3ZWVrbHkgcGF5IHdpdGhvdXQgYW55IG92ZXJ0aW1lCiAgICBmbG9hdCBvdmVydGltZUhyc1tTSVpFXTsgICAvLyBvdmVydGltZSBob3VycyB3b3JrZWQgaW4gYSBnaXZlbiB3ZWVrCiAgICBmbG9hdCBvdmVydGltZVBheSBbU0laRV07ICAvLyBvdmVydGltZSBwYXkgZm9yIGEgZ2l2ZW4gd2VlawoKICAgIC8vIGhvdXJseSBwYXkgZm9yIGVhY2ggZW1wbG95ZWUKICAgIGZsb2F0IHdhZ2VSYXRlIFtTSVpFXSA9IHsxMC42LCA5Ljc1LCAxMC41LCAxMi4yNSwgOC4zNX07IAoKICAgIHByaW50ZiAoIlxuKioqIFBheSBDYWxjdWxhdG9yICoqKlxuXG4iKTsKCiAgICAvLyBQcm9jZXNzIGVhY2ggZW1wbG95ZWUgb25lIGF0IGEgdGltZQogICAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkrKykKICAgIHsKICAgICAgICAvLyBQcm9tcHQgYW5kIFJlYWQgaW4gaG91cnMgd29ya2VkIGZvciBlbXBsb3llZQogICAgICAgIHByaW50ZigiRW50ZXIgaG91cnMgd29ya2VkIGZvciBlbXBsb3llZSAlbGQ6ICIsIGNsb2NrTnVtYmVyW2ldKTsKICAgICAgICBzY2FuZigiJWYiLCAmaG91cnNbaV0pOwoKICAgICAgICAvLyBDYWxjdWxhdGUgb3ZlcnRpbWUgYW5kIGdyb3NzIHBheSBmb3IgZW1wbG95ZWUKICAgICAgICBpZiAoaG91cnNbaV0gPj0gU1REX0hPVVJTKQogICAgICAgIHsKICAgICAgICAgICAgb3ZlcnRpbWVIcnNbaV0gPSBob3Vyc1tpXSAtIFNURF9IT1VSUzsKICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIGFycmF5cyBub3JtYWxQYXkgYW5kIG92ZXJ0aW1lUGF5IHdpdGggb3ZlcnRpbWUKICAgICAgICAgICAgbm9ybWFsUGF5W2ldID0gU1REX0hPVVJTICogd2FnZVJhdGVbaV07CiAgICAgICAgICAgIG92ZXJ0aW1lUGF5W2ldID0gb3ZlcnRpbWVIcnNbaV0gKiB3YWdlUmF0ZVtpXSAqIE9UX1JBVEU7CiAgICAgICAgfQogICAgICAgIGVsc2UgLy8gbm8gT1QKICAgICAgICB7CiAgICAgICAgICAgIG92ZXJ0aW1lSHJzW2ldID0gMDsKICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIGFycmF5cyBub3JtYWxQYXkgYW5kIG92ZXJ0aW1lUGF5IHdpdGhvdXQgb3ZlcnRpbWUKICAgICAgICAgICAgbm9ybWFsUGF5W2ldID0gaG91cnNbaV0gKiB3YWdlUmF0ZVtpXTsKICAgICAgICAgICAgb3ZlcnRpbWVQYXlbaV0gPSAwOwogICAgICAgIH0KCiAgICAgICAgLy8gQ2FsY3VsYXRlIEdyb3NzIFBheQogICAgICAgIGdyb3NzUGF5W2ldID0gbm9ybWFsUGF5W2ldICsgb3ZlcnRpbWVQYXlbaV07CiAgICB9CgogICAgLy8gUHJpbnQgYSBuaWNlIHRhYmxlIGhlYWRlcgogICAgcHJpbnRmKCJcblxuIik7CiAgICBwcmludGYoIiU1cyAlNXMgJTVzICU1cyAlNXMgJTVzXG4iLCAKICAgICAgICAgICAiQ2xvY2sgIyIsICJXYWdlIFJhdGUiLCAiSG91cnMiLCAiTm9ybWFsIFBheSIsICJPVCBQYXkiLCAiR3Jvc3MgUGF5Iik7CiAgICBwcmludGYoIiU1cyAlNXMgJTVzICU1cyAlNXMgJTVzXG4iLCAKICAgICAgICAgICAiLS0tLS0tLS0iLCAiLS0tLS0tLS0tIiwgIi0tLS0tIiwgIi0tLS0tLS0tLS0tIiwgIi0tLS0tLS0iLCAiLS0tLS0tLS0tIik7CgogICAgLy8gTm93IHRoYXQgd2UgaGF2ZSBhbGwgdGhlIGluZm9ybWF0aW9uIGluIG91ciBhcnJheXMsIHdlIGNhbgogICAgLy8gQWNjZXNzIGVhY2ggZW1wbG95ZWUgYW5kIHByaW50IHRvIHNjcmVlbiBvciBmaWxlCiAgICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKQogICAgewogICAgICAgIC8vIFByaW50IGVtcGxveWVlIGluZm9ybWF0aW9uIGZyb20geW91ciBhcnJheXMKICAgICAgICBwcmludGYoIiUtNWxkICQlLTUuMmYgJS01LjJmICQlLTUuMmYgJCUtNS4yZiAkJS01LjJmXG4iLAogICAgICAgICAgICAgICBjbG9ja051bWJlcltpXSwgd2FnZVJhdGVbaV0sIGhvdXJzW2ldLCAKICAgICAgICAgICAgICAgbm9ybWFsUGF5W2ldLCBvdmVydGltZVBheVtpXSwgZ3Jvc3NQYXlbaV0pOwogICAgfQoKICAgIHByaW50ZigiXG4iKTsKICAgIHJldHVybigwKTsKfQoK