#include <stdio.h>
// Declare constants
#define STD_HOURS 40.0
#define NUM_EMPLOYEES 5
#define OVERTIME_RATE 1.5
#define Size 5
// TODO: Declare and use one more constant
int main( ) {
#define SIZE 5 /* symbolic constant for the array size */
long int clockNumber [ SIZE] = { 98401 , 526488 , 765349 , 34645 , 127615 } ; // Employee clock number
float grossPay; // The weekly gross pay which is the normalPay + any overtimePay
float hours [ ] = { 51.0 , 42.5 , 37.0 , 45.0 , 0.0 } ; // Total hours worked in a week
float normalPay ; // Standard weekly normal pay without overtime
float overtimeHrs; // Any hours worked past the normal scheduled work week
float overtimePay; // Additional overtime pay for any overtime hours worked
float wageRate [ ] = { 10.60 , 9.75 , 10.50 , 12.25 , 8.25 } ;
float totalPay = 0.00 ;
float aveGross = 0.00 ;
printf ( "\n ***Pay Calculator***" ) ;
// Process each employee
for ( int i = 0 ; i < NUM_EMPLOYEES; i++ ) {
// Prompt the user for the clock number
printf ( "\n \n Enter clock number: " ) ; scanf ( "%d" , & clockNumber
[ i
] ) ;
// Prompt the user for the wage rate
printf ( "\n Enter wage rate: " ) ; scanf ( "%f" , & wageRate
[ i
] ) ;
// Prompt the user for the number of hours worked
printf ( "\n Enter number of hours worked: " ) ;
if ( hours[ i] > STD_HOURS) {
// TODO: calculate the three values with overtime
overtimeHrs = hours[ i] - STD_HOURS;
normalPay = STD_HOURS * wageRate[ i] ;
overtimePay = overtimeHrs * wageRate[ i] * OVERTIME_RATE;
} else {
// TODO: calculate the three values without overtime
overtimeHrs = 0.0 ;
normalPay = hours[ i] * wageRate[ i] ;
overtimePay = 0.0 ;
}
// Calculate the gross pay with normal pay and any additional overtime pay
grossPay = normalPay + overtimePay;
totalPay += grossPay;
aveGross = totalPay / NUM_EMPLOYEES;
// Print out information on the current employee
// Optional TODO: Feel free to also print out normalPay and overtimePay
printf ( "\n \n Clock# Wage Hours OT Gross\n " ) ; printf ( "------------------------------------------------\n " ) ; printf ( "%06d %5.2f %5.1f %5.1f %8.2f\n " , clockNumber[ i] , wageRate[ i] , hours[ i] , overtimeHrs, grossPay) ;
}
// for
printf ( "\n ------------------------------------------------\n " ) ; printf ( "Total Gross Pay: %8.2f\n " , totalPay
) ; printf ( "\n ------------------------------------------------\n " ) ; printf ( "Average Gross Pay: %8.2f\n " , aveGross
) ;
return 0 ;
} // main
CiNpbmNsdWRlIDxzdGRpby5oPgoKIC8vIERlY2xhcmUgY29uc3RhbnRzCiAjZGVmaW5lIFNURF9IT1VSUyA0MC4wCiAjZGVmaW5lIE5VTV9FTVBMT1lFRVMgNQogI2RlZmluZSBPVkVSVElNRV9SQVRFIDEuNQogI2RlZmluZSBTaXplIDUKCiAvLyBUT0RPOiBEZWNsYXJlIGFuZCB1c2Ugb25lIG1vcmUgY29uc3RhbnQKCiBpbnQgbWFpbigpewogI2RlZmluZSBTSVpFIDUgICAvKiBzeW1ib2xpYyBjb25zdGFudCBmb3IgdGhlIGFycmF5IHNpemUgKi8KCiBsb25nIGludCBjbG9ja051bWJlciBbU0laRV0gPSB7OTg0MDEsIDUyNjQ4OCwgNzY1MzQ5LCAzNDY0NSwgMTI3NjE1fTsgLy8gRW1wbG95ZWUgY2xvY2sgbnVtYmVyCiBmbG9hdCBncm9zc1BheTsgLy8gVGhlIHdlZWtseSBncm9zcyBwYXkgd2hpY2ggaXMgdGhlIG5vcm1hbFBheSArIGFueSBvdmVydGltZVBheQogZmxvYXQgaG91cnMgW10gPSB7NTEuMCwgNDIuNSwgMzcuMCwgNDUuMCwgMC4wfTsgLy8gVG90YWwgaG91cnMgd29ya2VkIGluIGEgd2VlawogZmxvYXQgbm9ybWFsUGF5IDsgLy8gU3RhbmRhcmQgd2Vla2x5IG5vcm1hbCBwYXkgd2l0aG91dCBvdmVydGltZQogZmxvYXQgb3ZlcnRpbWVIcnM7IC8vIEFueSBob3VycyB3b3JrZWQgcGFzdCB0aGUgbm9ybWFsIHNjaGVkdWxlZCB3b3JrIHdlZWsKIGZsb2F0IG92ZXJ0aW1lUGF5OyAvLyBBZGRpdGlvbmFsIG92ZXJ0aW1lIHBheSBmb3IgYW55IG92ZXJ0aW1lIGhvdXJzIHdvcmtlZAogZmxvYXQgd2FnZVJhdGUgW10gPSB7MTAuNjAsIDkuNzUsIDEwLjUwLCAxMi4yNSwgOC4yNX07IAogZmxvYXQgdG90YWxQYXkgPSAwLjAwOwogZmxvYXQgYXZlR3Jvc3MgPSAwLjAwOwogCgoKCnByaW50ZigiXG4qKipQYXkgQ2FsY3VsYXRvcioqKiIpOwoKLy8gUHJvY2VzcyBlYWNoIGVtcGxveWVlCiBmb3IgKGludCBpID0gMDsgaSA8IE5VTV9FTVBMT1lFRVM7IGkrKykgewogICAvLyBQcm9tcHQgdGhlIHVzZXIgZm9yIHRoZSBjbG9jayBudW1iZXIKICAgIHByaW50ZigiXG5cbkVudGVyIGNsb2NrIG51bWJlcjogIik7CiAgICBzY2FuZigiJWQiLCAmY2xvY2tOdW1iZXJbaV0pOwoKICAgIC8vIFByb21wdCB0aGUgdXNlciBmb3IgdGhlIHdhZ2UgcmF0ZQogICBwcmludGYoIlxuRW50ZXIgd2FnZSByYXRlOiAiKTsKICAgIHNjYW5mKCIlZiIsICZ3YWdlUmF0ZVtpXSk7CgogICAgLy8gUHJvbXB0IHRoZSB1c2VyIGZvciB0aGUgbnVtYmVyIG9mIGhvdXJzIHdvcmtlZAogICAgcHJpbnRmKCJcbkVudGVyIG51bWJlciBvZiBob3VycyB3b3JrZWQ6ICIpOwogICAgc2NhbmYoIiVmIiwgJmhvdXJzW2ldKTsKCiAgICAgIGlmIChob3Vyc1tpXSA+IFNURF9IT1VSUykgewogICAgICAgLy8gVE9ETzogY2FsY3VsYXRlIHRoZSB0aHJlZSB2YWx1ZXMgd2l0aCBvdmVydGltZQogICAgICAgIG92ZXJ0aW1lSHJzID0gaG91cnNbaV0gLSBTVERfSE9VUlM7CiAgICAgICAgbm9ybWFsUGF5ID0gU1REX0hPVVJTICogd2FnZVJhdGVbaV07CiAgICAgICAgb3ZlcnRpbWVQYXkgPSBvdmVydGltZUhycyAqIHdhZ2VSYXRlW2ldICogT1ZFUlRJTUVfUkFURTsKICAgICAgIH0gZWxzZSB7CiAgICAgICAvLyBUT0RPOiBjYWxjdWxhdGUgdGhlIHRocmVlIHZhbHVlcyB3aXRob3V0IG92ZXJ0aW1lCiAgICAgICAgb3ZlcnRpbWVIcnMgPSAwLjA7CiAgICAgICAgbm9ybWFsUGF5ID0gaG91cnNbaV0gKiB3YWdlUmF0ZVtpXTsKICAgICAgICBvdmVydGltZVBheSA9IDAuMDsKICAgICAgIH0KICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIGdyb3NzIHBheSB3aXRoIG5vcm1hbCBwYXkgYW5kIGFueSBhZGRpdGlvbmFsIG92ZXJ0aW1lIHBheQogICAgZ3Jvc3NQYXkgPSBub3JtYWxQYXkgKyBvdmVydGltZVBheTsKICAgIHRvdGFsUGF5ICs9IGdyb3NzUGF5OwogICAgYXZlR3Jvc3MgPSB0b3RhbFBheSAvIE5VTV9FTVBMT1lFRVM7CgoKICAgIC8vIFByaW50IG91dCBpbmZvcm1hdGlvbiBvbiB0aGUgY3VycmVudCBlbXBsb3llZQogICAgLy8gT3B0aW9uYWwgVE9ETzogRmVlbCBmcmVlIHRvIGFsc28gcHJpbnQgb3V0IG5vcm1hbFBheSBhbmQgb3ZlcnRpbWVQYXkKICAgIHByaW50ZigiXG5cbkNsb2NrIyBXYWdlIEhvdXJzIE9UIEdyb3NzXG4iKTsKICAgIHByaW50ZigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKICAgIHByaW50ZigiJTA2ZCAlNS4yZiAlNS4xZiAlNS4xZiAlOC4yZlxuIiwKICAgIGNsb2NrTnVtYmVyW2ldLCB3YWdlUmF0ZVtpXSwgaG91cnNbaV0sIG92ZXJ0aW1lSHJzLCBncm9zc1BheSk7CiAgICAKICAgIAogfQogICAgIC8vIGZvcgoKcHJpbnRmKCJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CiAgICBwcmludGYoIlRvdGFsIEdyb3NzIFBheToJJTguMmZcbiIsIHRvdGFsUGF5KTsKICAgIHByaW50ZigiXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwogICAgcHJpbnRmKCJBdmVyYWdlIEdyb3NzIFBheTogICU4LjJmXG4iLCBhdmVHcm9zcyk7CgogcmV0dXJuIDA7CiB9IC8vIG1haW4KCgoKCgoK