#include <stdio.h>
// Constants to use
#define SIZE 5 // Number of employees to process
#define STD_HOURS 40.0 // Normal workweek hours before overtime
#define OT_RATE 1.5 // Overtime rate (1.5 times the regular wage)
int main( ) {
// Declare arrays for employee data
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
float wageRate[ SIZE] = { 10.6 , 9.75 , 10.5 , 12.25 , 8.35 } ; // Hourly pay rate for each employee
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 each employee
printf ( "Enter hours worked for employee with clock number %ld: " , clockNumber
[ i
] ) ;
// Calculate overtime and gross pay for each employee
if ( hours[ i] >= STD_HOURS) {
overtimeHrs[ i] = hours[ i] - STD_HOURS;
normalPay[ i] = STD_HOURS * wageRate[ i] ;
overtimePay[ i] = overtimeHrs[ i] * wageRate[ i] * OT_RATE;
} else { // No overtime
overtimeHrs[ i] = 0 ;
normalPay[ i] = hours[ i] * wageRate[ i] ;
overtimePay[ i] = 0 ;
}
// Calculate Gross Pay
grossPay[ i] = normalPay[ i] + overtimePay[ i] ;
}
// Print a table header
printf ( "\n Clock #\t Hours\t Normal Pay\t Overtime Hrs\t Overtime Pay\t Gross Pay\n " ) ;
// Print employee information from the arrays
for ( i = 0 ; i < SIZE; i++ ) {
printf ( "%ld\t %.1f\t %.2f\t \t %.1f\t \t %.2f\t \t %.2f\n " , clockNumber
[ i
] , hours
[ i
] , normalPay
[ i
] , overtimeHrs
[ i
] , overtimePay
[ i
] , grossPay
[ i
] ) ; }
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyBDb25zdGFudHMgdG8gdXNlCiNkZWZpbmUgU0laRSA1ICAgICAgICAgIC8vIE51bWJlciBvZiBlbXBsb3llZXMgdG8gcHJvY2VzcwojZGVmaW5lIFNURF9IT1VSUyA0MC4wICAvLyBOb3JtYWwgd29ya3dlZWsgaG91cnMgYmVmb3JlIG92ZXJ0aW1lCiNkZWZpbmUgT1RfUkFURSAxLjUgICAgIC8vIE92ZXJ0aW1lIHJhdGUgKDEuNSB0aW1lcyB0aGUgcmVndWxhciB3YWdlKQoKaW50IG1haW4oKSB7CiAgICAvLyBEZWNsYXJlIGFycmF5cyBmb3IgZW1wbG95ZWUgZGF0YQogICAgbG9uZyBpbnQgY2xvY2tOdW1iZXJbU0laRV0gPSB7OTg0MDEsIDUyNjQ4OCwgNzY1MzQ5LCAzNDY0NSwgMTI3NjE1fTsKICAgIGZsb2F0IGdyb3NzUGF5W1NJWkVdOyAgICAvLyBXZWVrbHkgZ3Jvc3MgcGF5IChub3JtYWwgcGF5ICsgb3ZlcnRpbWUgcGF5KQogICAgZmxvYXQgaG91cnNbU0laRV07ICAgICAgIC8vIEhvdXJzIHdvcmtlZCBpbiBhIGdpdmVuIHdlZWsKICAgIGludCBpOyAgICAgICAgICAgICAgICAgICAvLyBMb29wIGFuZCBhcnJheSBpbmRleAogICAgZmxvYXQgbm9ybWFsUGF5W1NJWkVdOyAgIC8vIE5vcm1hbCB3ZWVrbHkgcGF5IHdpdGhvdXQgYW55IG92ZXJ0aW1lCiAgICBmbG9hdCBvdmVydGltZUhyc1tTSVpFXTsgLy8gT3ZlcnRpbWUgaG91cnMgd29ya2VkIGluIGEgZ2l2ZW4gd2VlawogICAgZmxvYXQgb3ZlcnRpbWVQYXlbU0laRV07IC8vIE92ZXJ0aW1lIHBheSBmb3IgYSBnaXZlbiB3ZWVrCiAgICBmbG9hdCB3YWdlUmF0ZVtTSVpFXSA9IHsxMC42LCA5Ljc1LCAxMC41LCAxMi4yNSwgOC4zNX07IC8vIEhvdXJseSBwYXkgcmF0ZSBmb3IgZWFjaCBlbXBsb3llZQoKICAgIHByaW50ZigiXG4qKiogUGF5IENhbGN1bGF0b3IgKioqXG5cbiIpOwoKICAgIC8vIFByb2Nlc3MgZWFjaCBlbXBsb3llZSBvbmUgYXQgYSB0aW1lCiAgICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKSB7CiAgICAgICAgLy8gUHJvbXB0IGFuZCBSZWFkIGluIGhvdXJzIHdvcmtlZCBmb3IgZWFjaCBlbXBsb3llZQogICAgICAgIHByaW50ZigiRW50ZXIgaG91cnMgd29ya2VkIGZvciBlbXBsb3llZSB3aXRoIGNsb2NrIG51bWJlciAlbGQ6ICIsIGNsb2NrTnVtYmVyW2ldKTsKICAgICAgICBzY2FuZigiJWYiLCAmaG91cnNbaV0pOwoKICAgICAgICAvLyBDYWxjdWxhdGUgb3ZlcnRpbWUgYW5kIGdyb3NzIHBheSBmb3IgZWFjaCBlbXBsb3llZQogICAgICAgIGlmIChob3Vyc1tpXSA+PSBTVERfSE9VUlMpIHsKICAgICAgICAgICAgb3ZlcnRpbWVIcnNbaV0gPSBob3Vyc1tpXSAtIFNURF9IT1VSUzsKICAgICAgICAgICAgbm9ybWFsUGF5W2ldID0gU1REX0hPVVJTICogd2FnZVJhdGVbaV07CiAgICAgICAgICAgIG92ZXJ0aW1lUGF5W2ldID0gb3ZlcnRpbWVIcnNbaV0gKiB3YWdlUmF0ZVtpXSAqIE9UX1JBVEU7CiAgICAgICAgfSBlbHNlIHsgLy8gTm8gb3ZlcnRpbWUKICAgICAgICAgICAgb3ZlcnRpbWVIcnNbaV0gPSAwOwogICAgICAgICAgICBub3JtYWxQYXlbaV0gPSBob3Vyc1tpXSAqIHdhZ2VSYXRlW2ldOwogICAgICAgICAgICBvdmVydGltZVBheVtpXSA9IDA7CiAgICAgICAgfQoKICAgICAgICAvLyBDYWxjdWxhdGUgR3Jvc3MgUGF5CiAgICAgICAgZ3Jvc3NQYXlbaV0gPSBub3JtYWxQYXlbaV0gKyBvdmVydGltZVBheVtpXTsKICAgIH0KCiAgICAvLyBQcmludCBhIHRhYmxlIGhlYWRlcgogICAgcHJpbnRmKCJcbkNsb2NrICNcdEhvdXJzXHROb3JtYWwgUGF5XHRPdmVydGltZSBIcnNcdE92ZXJ0aW1lIFBheVx0R3Jvc3MgUGF5XG4iKTsKCiAgICAvLyBQcmludCBlbXBsb3llZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBhcnJheXMKICAgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyBpKyspIHsKICAgICAgICBwcmludGYoIiVsZFx0JS4xZlx0JS4yZlx0XHQlLjFmXHRcdCUuMmZcdFx0JS4yZlxuIiwgY2xvY2tOdW1iZXJbaV0sIGhvdXJzW2ldLCBub3JtYWxQYXlbaV0sIG92ZXJ0aW1lSHJzW2ldLCBvdmVydGltZVBheVtpXSwgZ3Jvc3NQYXlbaV0pOwogICAgfQoKICAgIHJldHVybiAwOwp9