#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 a half overtime setting
int main( )
{
// Declare arrays for employee data
long int clockNumber[ SIZE] = { 98401 , 526488 , 765349 , 34645 , 127615 } ;
float wageRate[ SIZE] = { 10.6 , 9.75 , 10.5 , 12.25 , 8.35 } ;
float hours[ SIZE] ; // Hours worked in a given week
float overtimeHrs[ SIZE] ; // Overtime hours worked
float normalPay[ SIZE] ; // Pay for standard hours
float overtimePay[ SIZE] ; // Overtime pay
float grossPay[ SIZE] ; // Total gross pay
int i; // Loop index
printf ( "\n *** Pay Calculator ***\n \n " ) ;
// Prompt and read in hours worked for each employee
for ( i = 0 ; i < SIZE; i++ ) {
printf ( "Enter hours worked for employee with clock number %06ld: " , clockNumber[ i] ) ;
scanf ( "%f" , & hours[ i] ) ;
}
// Calculate pay for each employee
for ( i = 0 ; i < SIZE; i++ ) {
if ( hours[ i] > STD_HOURS) {
overtimeHrs[ i] = hours[ i] - STD_HOURS;
normalPay[ i] = wageRate[ i] * STD_HOURS;
overtimePay[ i] = overtimeHrs[ i] * wageRate[ i] * OT_RATE;
} else {
overtimeHrs[ i] = 0.0 ;
normalPay[ i] = wageRate[ i] * hours[ i] ;
overtimePay[ i] = 0.0 ;
}
grossPay[ i] = normalPay[ i] + overtimePay[ i] ;
}
// Print a table header
printf ( "\n --------------------------------------------------------------\n " ) ;
printf ( " Clock# Wage Hours OT Gross\n " ) ;
printf ( "--------------------------------------------------------------\n " ) ;
// Print employee pay information
for ( i = 0 ; i < SIZE; i++ ) {
printf ( " %06ld %5.2f %5.1f %5.1f %8.2f\n " ,
clockNumber[ i] ,
wageRate[ i] ,
hours[ i] ,
overtimeHrs[ i] ,
grossPay[ i] ) ;
}
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyBDb25zdGFudHMgdG8gdXNlCiNkZWZpbmUgU0laRSA1ICAgICAgICAgICAvLyBOdW1iZXIgb2YgZW1wbG95ZWVzIHRvIHByb2Nlc3MKI2RlZmluZSBTVERfSE9VUlMgNDAuMCAgIC8vIE5vcm1hbCB3b3JrIHdlZWsgaG91cnMgYmVmb3JlIG92ZXJ0aW1lCiNkZWZpbmUgT1RfUkFURSAxLjUgICAgICAvLyBUaW1lIGFuZCBhIGhhbGYgb3ZlcnRpbWUgc2V0dGluZwoKaW50IG1haW4oKQp7CiAgICAvLyBEZWNsYXJlIGFycmF5cyBmb3IgZW1wbG95ZWUgZGF0YQogICAgbG9uZyBpbnQgY2xvY2tOdW1iZXJbU0laRV0gPSB7OTg0MDEsIDUyNjQ4OCwgNzY1MzQ5LCAzNDY0NSwgMTI3NjE1fTsKICAgIGZsb2F0IHdhZ2VSYXRlW1NJWkVdID0gezEwLjYsIDkuNzUsIDEwLjUsIDEyLjI1LCA4LjM1fTsKICAgIGZsb2F0IGhvdXJzW1NJWkVdOyAgICAgICAgICAgICAgLy8gSG91cnMgd29ya2VkIGluIGEgZ2l2ZW4gd2VlawogICAgZmxvYXQgb3ZlcnRpbWVIcnNbU0laRV07ICAgICAgICAvLyBPdmVydGltZSBob3VycyB3b3JrZWQKICAgIGZsb2F0IG5vcm1hbFBheVtTSVpFXTsgICAgICAgICAgLy8gUGF5IGZvciBzdGFuZGFyZCBob3VycwogICAgZmxvYXQgb3ZlcnRpbWVQYXlbU0laRV07ICAgICAgICAvLyBPdmVydGltZSBwYXkKICAgIGZsb2F0IGdyb3NzUGF5W1NJWkVdOyAgICAgICAgICAgLy8gVG90YWwgZ3Jvc3MgcGF5CgogICAgaW50IGk7IC8vIExvb3AgaW5kZXgKCiAgICBwcmludGYoIlxuKioqIFBheSBDYWxjdWxhdG9yICoqKlxuXG4iKTsKCiAgICAvLyBQcm9tcHQgYW5kIHJlYWQgaW4gaG91cnMgd29ya2VkIGZvciBlYWNoIGVtcGxveWVlCiAgICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCJFbnRlciBob3VycyB3b3JrZWQgZm9yIGVtcGxveWVlIHdpdGggY2xvY2sgbnVtYmVyICUwNmxkOiAiLCBjbG9ja051bWJlcltpXSk7CiAgICAgICAgc2NhbmYoIiVmIiwgJmhvdXJzW2ldKTsKICAgIH0KCiAgICAvLyBDYWxjdWxhdGUgcGF5IGZvciBlYWNoIGVtcGxveWVlCiAgICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKSB7CiAgICAgICAgaWYgKGhvdXJzW2ldID4gU1REX0hPVVJTKSB7CiAgICAgICAgICAgIG92ZXJ0aW1lSHJzW2ldID0gaG91cnNbaV0gLSBTVERfSE9VUlM7CiAgICAgICAgICAgIG5vcm1hbFBheVtpXSA9IHdhZ2VSYXRlW2ldICogU1REX0hPVVJTOwogICAgICAgICAgICBvdmVydGltZVBheVtpXSA9IG92ZXJ0aW1lSHJzW2ldICogd2FnZVJhdGVbaV0gKiBPVF9SQVRFOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG92ZXJ0aW1lSHJzW2ldID0gMC4wOwogICAgICAgICAgICBub3JtYWxQYXlbaV0gPSB3YWdlUmF0ZVtpXSAqIGhvdXJzW2ldOwogICAgICAgICAgICBvdmVydGltZVBheVtpXSA9IDAuMDsKICAgICAgICB9CgogICAgICAgIGdyb3NzUGF5W2ldID0gbm9ybWFsUGF5W2ldICsgb3ZlcnRpbWVQYXlbaV07CiAgICB9CgogICAgLy8gUHJpbnQgYSB0YWJsZSBoZWFkZXIKICAgIHByaW50ZigiXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CiAgICBwcmludGYoIiAgQ2xvY2sjICAgV2FnZSAgIEhvdXJzICAgIE9UICAgICBHcm9zc1xuIik7CiAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKCiAgICAvLyBQcmludCBlbXBsb3llZSBwYXkgaW5mb3JtYXRpb24KICAgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyBpKyspIHsKICAgICAgICBwcmludGYoIiAlMDZsZCAgICU1LjJmICAgJTUuMWYgICAlNS4xZiAgICU4LjJmXG4iLAogICAgICAgICAgICAgICBjbG9ja051bWJlcltpXSwKICAgICAgICAgICAgICAgd2FnZVJhdGVbaV0sCiAgICAgICAgICAgICAgIGhvdXJzW2ldLAogICAgICAgICAgICAgICBvdmVydGltZUhyc1tpXSwKICAgICAgICAgICAgICAgZ3Jvc3NQYXlbaV0pOwogICAgfQoKICAgIHJldHVybiAwOwp9