#include <stdio.h>
#define NUM_EMPLOYEES 5 // Number of employees to process
#define STD_HOURS 40.0 // Threshold for overtime hours
#define OVERTIME_RATE 1.5 // Overtime pay is 1.5 times the regular rate
int main( ) {
int clockNumber; // Employee clock number
float wageRate; // Hourly wage for an employee
float hoursWorked; // Total hours worked in a week
float overtimeHours; // overtime hours worked
float grossPay; // The weekly gross pay which is the normalypay +overtimePay
// Print table header
printf ( "------------------------------------------------\n " ) ; printf ( "Clock# Wage Hours OT Gross\n " ) ; printf ( "------------------------------------------------\n " ) ;
// Process each employee in
for ( int i = 0 ; i < NUM_EMPLOYEES; i++ ) {
// Prompt the user for the clock number
printf ( "\n Enter clock number for employee %d: " , i
+ 1 ) ; scanf ( "%d" , & clockNumber
) ; //Prompt the user for the wage rate
printf ( "Enter wage rate for employee %d: " , i
+ 1 ) ; //Prompt the user for the number of hours worked
printf ( "Enter hours worked for employee %d: " , i
+ 1 ) ; scanf ( "%f" , & hoursWorked
) ;
// Calculate overtime hours (anything over 40 hours)
if ( hoursWorked > STD_HOURS) {
overtimeHours = hoursWorked - STD_HOURS ;
} else {
overtimeHours = 0.0 ;
}
// Calculate gross pay
if ( overtimeHours > 0 ) {
grossPay = ( STD_HOURS * wageRate) + ( overtimeHours * wageRate * OVERTIME_RATE) ;
} else {
grossPay = hoursWorked * wageRate;
}
// Output employee data with formatted values
printf ( "%06d %.2f %.1f %.1f %.2f\n " , clockNumber
, wageRate
, hoursWorked
, overtimeHours
, grossPay
) ; }
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIE5VTV9FTVBMT1lFRVMgNSAgICAgLy8gTnVtYmVyIG9mIGVtcGxveWVlcyB0byBwcm9jZXNzCiNkZWZpbmUgU1REX0hPVVJTIDQwLjAgICAgICAgICAvLyBUaHJlc2hvbGQgZm9yIG92ZXJ0aW1lIGhvdXJzCiNkZWZpbmUgT1ZFUlRJTUVfUkFURSAxLjUgICAgLy8gT3ZlcnRpbWUgcGF5IGlzIDEuNSB0aW1lcyB0aGUgcmVndWxhciByYXRlCgppbnQgbWFpbigpIHsKICAgIAogICAgaW50IGNsb2NrTnVtYmVyOyAvLyBFbXBsb3llZSBjbG9jayBudW1iZXIKICAgIGZsb2F0IHdhZ2VSYXRlOyAgIC8vIEhvdXJseSB3YWdlIGZvciBhbiBlbXBsb3llZQogICAgIGZsb2F0IGhvdXJzV29ya2VkOyAvLyBUb3RhbCBob3VycyB3b3JrZWQgaW4gYSB3ZWVrCiAgICAgZmxvYXQgb3ZlcnRpbWVIb3VyczsgLy8gb3ZlcnRpbWUgaG91cnMgd29ya2VkICAKICAgICBmbG9hdCBncm9zc1BheTsgICAgICAgLy8gVGhlIHdlZWtseSBncm9zcyBwYXkgd2hpY2ggaXMgdGhlIG5vcm1hbHlwYXkgK292ZXJ0aW1lUGF5CgogICAgLy8gUHJpbnQgdGFibGUgaGVhZGVyCiAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CiAgICBwcmludGYoIkNsb2NrIyAgV2FnZSAgIEhvdXJzICBPVCAgICBHcm9zc1xuIik7CiAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CgogICAgLy8gUHJvY2VzcyBlYWNoIGVtcGxveWVlIGluIAogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOVU1fRU1QTE9ZRUVTOyBpKyspIHsKICAgICAgICAvLyBQcm9tcHQgdGhlIHVzZXIgZm9yIHRoZSBjbG9jayBudW1iZXIgCiAgICAgICAgcHJpbnRmKCJcbkVudGVyIGNsb2NrIG51bWJlciBmb3IgZW1wbG95ZWUgJWQ6ICIsIGkgKyAxKTsKICAgICAgICBzY2FuZigiJWQiLCAmY2xvY2tOdW1iZXIpOwoJCS8vUHJvbXB0IHRoZSB1c2VyIGZvciB0aGUgd2FnZSByYXRlCiAgICAgICAgcHJpbnRmKCJFbnRlciB3YWdlIHJhdGUgZm9yIGVtcGxveWVlICVkOiAiLCBpICsgMSk7CiAgICAgICAgc2NhbmYoIiVmIiwgJndhZ2VSYXRlKTsKCQkvL1Byb21wdCB0aGUgdXNlciBmb3IgdGhlIG51bWJlciBvZiAgaG91cnMgd29ya2VkCiAgICAgICAgcHJpbnRmKCJFbnRlciBob3VycyB3b3JrZWQgZm9yIGVtcGxveWVlICVkOiAiLCBpICsgMSk7CiAgICAgICAgc2NhbmYoIiVmIiwgJmhvdXJzV29ya2VkKTsKCiAgICAgICAgLy8gQ2FsY3VsYXRlIG92ZXJ0aW1lIGhvdXJzIChhbnl0aGluZyBvdmVyIDQwIGhvdXJzKQogICAgICAgIGlmIChob3Vyc1dvcmtlZCA+IFNURF9IT1VSUykgewogICAgICAgICAgICBvdmVydGltZUhvdXJzID0gaG91cnNXb3JrZWQgLVNURF9IT1VSUyA7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgb3ZlcnRpbWVIb3VycyA9IDAuMDsKICAgICAgICB9CgogICAgICAgIC8vIENhbGN1bGF0ZSBncm9zcyBwYXkKICAgICAgICBpZiAob3ZlcnRpbWVIb3VycyA+IDApIHsKICAgICAgICAgICAgZ3Jvc3NQYXkgPSAoU1REX0hPVVJTICogd2FnZVJhdGUpICsgKG92ZXJ0aW1lSG91cnMgKiB3YWdlUmF0ZSAqIE9WRVJUSU1FX1JBVEUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGdyb3NzUGF5ID0gaG91cnNXb3JrZWQgKiB3YWdlUmF0ZTsKICAgICAgICB9CgogICAgICAgIC8vIE91dHB1dCBlbXBsb3llZSBkYXRhIHdpdGggZm9ybWF0dGVkIHZhbHVlcwogICAgICAgIHByaW50ZigiJTA2ZCAgJS4yZiAgJS4xZiAgJS4xZiAgJS4yZlxuIiwgY2xvY2tOdW1iZXIsIHdhZ2VSYXRlLCBob3Vyc1dvcmtlZCwgb3ZlcnRpbWVIb3VycywgZ3Jvc3NQYXkpOwogICAgfQoKICAgIHJldHVybiAwOwp9