#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 arrays and variables
long int clockNumber[ SIZE] = { 98401 , 526488 , 765349 , 34645 , 127615 } ; // Employee clock numbers
float wageRate[ SIZE] = { 10.6 , 9.75 , 10.5 , 12.25 , 8.35 } ; // Hourly wage rate for each employee
float hours[ SIZE] ; // Hours worked by each employee in a given week
float normalPay[ SIZE] ; // Normal weekly pay (no overtime)
float overtimeHrs[ SIZE] ; // Overtime hours worked in a given week
float overtimePay[ SIZE] ; // Overtime pay for each employee
float grossPay[ SIZE] ; // Total gross pay for each employee
int i; // Loop variable
// Display the program header
printf ( "\n *** Pay Calculator ***\n \n " ) ;
// Process each employee
for ( i = 0 ; i < SIZE; i++ )
{
// Prompt for hours worked
printf ( "Enter hours worked for Employee %ld: " , clockNumber
[ i
] ) ;
// Calculate overtime hours and pay
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 (normal pay + overtime pay)
grossPay[ i] = normalPay[ i] + overtimePay[ i] ;
}
// Print the report header
printf ( "\n --------------------------------------------------------------------------\n " ) ; printf ( " Clock# Wage Hours OT Gross\n " ) ; printf ( "--------------------------------------------------------------------------\n " ) ;
// Print each employee's data in the formatted table
for ( i = 0 ; i < SIZE; i++ )
{
printf ( "%8ld %5.2f %5.1f %5.1f %8.2f\n " , clockNumber
[ i
] , wageRate
[ i
] , hours
[ i
] , overtimeHrs
[ i
] , grossPay
[ i
] ) ; }
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyBjb25zdGFudHMgdG8gdXNlCiNkZWZpbmUgU0laRSA1ICAgICAgICAgICAvLyBudW1iZXIgb2YgZW1wbG95ZWVzIHRvIHByb2Nlc3MKI2RlZmluZSBTVERfSE9VUlMgNDAuMCAgIC8vIG5vcm1hbCB3b3JrIHdlZWsgaG91cnMgYmVmb3JlIG92ZXJ0aW1lCiNkZWZpbmUgT1RfUkFURSAxLjUgICAgICAvLyB0aW1lIGFuZCBoYWxmIG92ZXJ0aW1lIHNldHRpbmcKCmludCBtYWluKCkKewogICAgLy8gRGVjbGFyZSBhcnJheXMgYW5kIHZhcmlhYmxlcwogICAgbG9uZyBpbnQgY2xvY2tOdW1iZXJbU0laRV0gPSB7OTg0MDEsIDUyNjQ4OCwgNzY1MzQ5LCAzNDY0NSwgMTI3NjE1fTsgLy8gRW1wbG95ZWUgY2xvY2sgbnVtYmVycwogICAgZmxvYXQgd2FnZVJhdGVbU0laRV0gPSB7MTAuNiwgOS43NSwgMTAuNSwgMTIuMjUsIDguMzV9OyAgLy8gSG91cmx5IHdhZ2UgcmF0ZSBmb3IgZWFjaCBlbXBsb3llZQogICAgZmxvYXQgaG91cnNbU0laRV07ICAgICAgICAvLyBIb3VycyB3b3JrZWQgYnkgZWFjaCBlbXBsb3llZSBpbiBhIGdpdmVuIHdlZWsKICAgIGZsb2F0IG5vcm1hbFBheVtTSVpFXTsgICAgLy8gTm9ybWFsIHdlZWtseSBwYXkgKG5vIG92ZXJ0aW1lKQogICAgZmxvYXQgb3ZlcnRpbWVIcnNbU0laRV07ICAvLyBPdmVydGltZSBob3VycyB3b3JrZWQgaW4gYSBnaXZlbiB3ZWVrCiAgICBmbG9hdCBvdmVydGltZVBheVtTSVpFXTsgIC8vIE92ZXJ0aW1lIHBheSBmb3IgZWFjaCBlbXBsb3llZQogICAgZmxvYXQgZ3Jvc3NQYXlbU0laRV07ICAgICAvLyBUb3RhbCBncm9zcyBwYXkgZm9yIGVhY2ggZW1wbG95ZWUKCiAgICBpbnQgaTsgLy8gTG9vcCB2YXJpYWJsZQoKICAgIC8vIERpc3BsYXkgdGhlIHByb2dyYW0gaGVhZGVyCiAgICBwcmludGYoIlxuKioqIFBheSBDYWxjdWxhdG9yICoqKlxuXG4iKTsKCiAgICAvLyBQcm9jZXNzIGVhY2ggZW1wbG95ZWUKICAgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyBpKyspCiAgICB7CiAgICAgICAgLy8gUHJvbXB0IGZvciBob3VycyB3b3JrZWQKICAgICAgICBwcmludGYoIkVudGVyIGhvdXJzIHdvcmtlZCBmb3IgRW1wbG95ZWUgJWxkOiAiLCBjbG9ja051bWJlcltpXSk7CiAgICAgICAgc2NhbmYoIiVmIiwgJmhvdXJzW2ldKTsKCiAgICAgICAgLy8gQ2FsY3VsYXRlIG92ZXJ0aW1lIGhvdXJzIGFuZCBwYXkKICAgICAgICBpZiAoaG91cnNbaV0gPiBTVERfSE9VUlMpCiAgICAgICAgewogICAgICAgICAgICBvdmVydGltZUhyc1tpXSA9IGhvdXJzW2ldIC0gU1REX0hPVVJTOwogICAgICAgICAgICBub3JtYWxQYXlbaV0gPSBTVERfSE9VUlMgKiB3YWdlUmF0ZVtpXTsKICAgICAgICAgICAgb3ZlcnRpbWVQYXlbaV0gPSBvdmVydGltZUhyc1tpXSAqIHdhZ2VSYXRlW2ldICogT1RfUkFURTsKICAgICAgICB9CiAgICAgICAgZWxzZSAvLyBObyBvdmVydGltZQogICAgICAgIHsKICAgICAgICAgICAgb3ZlcnRpbWVIcnNbaV0gPSAwOwogICAgICAgICAgICBub3JtYWxQYXlbaV0gPSBob3Vyc1tpXSAqIHdhZ2VSYXRlW2ldOwogICAgICAgICAgICBvdmVydGltZVBheVtpXSA9IDA7CiAgICAgICAgfQoKICAgICAgICAvLyBDYWxjdWxhdGUgZ3Jvc3MgcGF5IChub3JtYWwgcGF5ICsgb3ZlcnRpbWUgcGF5KQogICAgICAgIGdyb3NzUGF5W2ldID0gbm9ybWFsUGF5W2ldICsgb3ZlcnRpbWVQYXlbaV07CiAgICB9CgogICAgLy8gUHJpbnQgdGhlIHJlcG9ydCBoZWFkZXIKICAgIHByaW50ZigiXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CiAgICBwcmludGYoIiAgICBDbG9jayMgICBXYWdlICBIb3VycyAgICBPVCAgICAgICBHcm9zc1xuIik7CiAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKCiAgICAvLyBQcmludCBlYWNoIGVtcGxveWVlJ3MgZGF0YSBpbiB0aGUgZm9ybWF0dGVkIHRhYmxlCiAgICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKQogICAgewogICAgICAgIHByaW50ZigiJThsZCAgICU1LjJmICAlNS4xZiAgICU1LjFmICAgJTguMmZcbiIsIGNsb2NrTnVtYmVyW2ldLCB3YWdlUmF0ZVtpXSwgaG91cnNbaV0sIG92ZXJ0aW1lSHJzW2ldLCBncm9zc1BheVtpXSk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=