#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()
{
// unique employee identifier
long int clockNumber[SIZE] = {98401, 526488, 765349, 34645, 127615};
float grossPay[SIZE];
float hours[SIZE];
int i;
float normalPay[SIZE];
float overtimeHrs[SIZE];
float overtimePay[SIZE];
// hourly pay for each employee
float wageRate[SIZE] = {10.6, 9.75, 10.5, 12.25, 8.35};
printf("\n*** Pay Calculator ***\n\n");
// Process each employee one at a time
for (i = 0; i < SIZE; i++)
{
// Prompt and read hours worked
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;
} // End if
else // no overtime
{
overtimeHrs[i] = 0;
normalPay[i] = hours[i] * wageRate[i];
overtimePay[i] = 0;
} // End else
// Calculate Gross Pay
grossPay[i] = normalPay[i] + overtimePay[i];
}
// Print table header
printf("\n%-10s %-10s %-10s %-12s %-12s %-12s\n", "Clock#", "Wage", "Hours", "Normal Pay", "OT", "Gross");
printf("---------------------------------------------------------------------\n");
// Print employee information
for (i = 0; i < SIZE; i++)
{
printf("%-10ld %-10.2f %-10.2f %-12.2f %-12.2f %-12.2f\n", clockNumber[i],
wageRate[i],
hours[i],
normalPay[i],
overtimePay[i],
grossPay[i]);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyBjb25zdGFudHMgdG8gdXNlCiNkZWZpbmUgU0laRSA1ICAgICAgICAgICAvLyBudW1iZXIgb2YgZW1wbG95ZWVzIHRvIHByb2Nlc3MKI2RlZmluZSBTVERfSE9VUlMgNDAuMCAgIC8vIG5vcm1hbCB3b3JrIHdlZWsgaG91cnMgYmVmb3JlIG92ZXJ0aW1lCiNkZWZpbmUgT1RfUkFURSAxLjUgICAgICAvLyB0aW1lIGFuZCBoYWxmIG92ZXJ0aW1lIHNldHRpbmcKCmludCBtYWluKCkKewogICAgLy8gdW5pcXVlIGVtcGxveWVlIGlkZW50aWZpZXIKICAgIGxvbmcgaW50IGNsb2NrTnVtYmVyW1NJWkVdID0gezk4NDAxLCA1MjY0ODgsIDc2NTM0OSwgMzQ2NDUsIDEyNzYxNX07CgogICAgZmxvYXQgZ3Jvc3NQYXlbU0laRV07ICAgICAKICAgIGZsb2F0IGhvdXJzW1NJWkVdOyAgICAgICAgCiAgICBpbnQgaTsgICAgICAgICAgICAgICAgICAgIAogICAgZmxvYXQgbm9ybWFsUGF5W1NJWkVdOyAgICAKICAgIGZsb2F0IG92ZXJ0aW1lSHJzW1NJWkVdOyAgCiAgICBmbG9hdCBvdmVydGltZVBheVtTSVpFXTsgIAoKICAgIC8vIGhvdXJseSBwYXkgZm9yIGVhY2ggZW1wbG95ZWUKICAgIGZsb2F0IHdhZ2VSYXRlW1NJWkVdID0gezEwLjYsIDkuNzUsIDEwLjUsIDEyLjI1LCA4LjM1fTsgCgogICAgcHJpbnRmKCJcbioqKiBQYXkgQ2FsY3VsYXRvciAqKipcblxuIik7CgogICAgLy8gUHJvY2VzcyBlYWNoIGVtcGxveWVlIG9uZSBhdCBhIHRpbWUKICAgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyBpKyspCiAgICB7CiAgICAgICAgLy8gUHJvbXB0IGFuZCByZWFkIGhvdXJzIHdvcmtlZAogICAgICAgIHNjYW5mKCIlZiIsICZob3Vyc1tpXSk7CgogICAgICAgIGlmIChob3Vyc1tpXSA+PSBTVERfSE9VUlMpCiAgICAgICAgewogICAgICAgICAgICBvdmVydGltZUhyc1tpXSA9IGhvdXJzW2ldIC0gU1REX0hPVVJTOwoKICAgICAgICAgICAgbm9ybWFsUGF5W2ldID0gU1REX0hPVVJTICogd2FnZVJhdGVbaV07CiAgICAgICAgICAgIG92ZXJ0aW1lUGF5W2ldID0gb3ZlcnRpbWVIcnNbaV0gKiB3YWdlUmF0ZVtpXSAqIE9UX1JBVEU7CiAgICAgICAgfQkvLyBFbmQgaWYKICAgICAgICBlbHNlIC8vIG5vIG92ZXJ0aW1lCiAgICAgICAgewogICAgICAgICAgICBvdmVydGltZUhyc1tpXSA9IDA7CgogICAgICAgICAgICBub3JtYWxQYXlbaV0gPSBob3Vyc1tpXSAqIHdhZ2VSYXRlW2ldOwogICAgICAgICAgICBvdmVydGltZVBheVtpXSA9IDA7CiAgICAgICAgfQkvLyBFbmQgZWxzZQoKICAgICAgICAvLyBDYWxjdWxhdGUgR3Jvc3MgUGF5CiAgICAgICAgZ3Jvc3NQYXlbaV0gPSBub3JtYWxQYXlbaV0gKyBvdmVydGltZVBheVtpXTsKICAgIH0KCiAgICAvLyBQcmludCB0YWJsZSBoZWFkZXIKICAgIHByaW50ZigiXG4lLTEwcyAlLTEwcyAlLTEwcyAlLTEycyAlLTEycyAlLTEyc1xuIiwKICAgICAgICAgICAiQ2xvY2sjIiwgIldhZ2UiLCAiSG91cnMiLCAiTm9ybWFsIFBheSIsICJPVCIsICJHcm9zcyIpOwoKICAgIHByaW50ZigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKCiAgICAvLyBQcmludCBlbXBsb3llZSBpbmZvcm1hdGlvbgogICAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkrKykKICAgIHsKICAgICAgICBwcmludGYoIiUtMTBsZCAlLTEwLjJmICUtMTAuMmYgJS0xMi4yZiAlLTEyLjJmICUtMTIuMmZcbiIsCiAgICAgICAgICAgICAgIGNsb2NrTnVtYmVyW2ldLAogICAgICAgICAgICAgICB3YWdlUmF0ZVtpXSwKICAgICAgICAgICAgICAgaG91cnNbaV0sCiAgICAgICAgICAgICAgIG5vcm1hbFBheVtpXSwKICAgICAgICAgICAgICAgb3ZlcnRpbWVQYXlbaV0sCiAgICAgICAgICAgICAgIGdyb3NzUGF5W2ldKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==