//*******************************************************
//
// Assignment 4 - Arrays
//
// Name: Tina Gayle-Campbell
//
// Class: C Programming, Fall, 2026
//
// Date: October 9, 2026
//
// Description: Program which determines overtime and
// gross pay for a set of employees with outputs sent
// to standard output (the screen).
//
//********************************************************
#include <stdio.h>
#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]; // 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
// 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 in hours worked for employee
printf("Enter hours worked for employee %06ld: ", clockNumber
[i
]);
// Calculate overtime and gross pay for 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 OT
{
overtimeHrs[i] = 0.0;
normalPay[i] = hours[i] * wageRate[i];
overtimePay[i] = 0.0;
}
// Calculate Gross Pay
grossPay[i] = normalPay[i] + overtimePay[i];
}
// Print a nice table header
printf("\n---------------------------------------------------------------------------------\n"); printf("%-10s %-10s %-8s %-10s %-10s %-12s %-10s\n", "Clock#", "Wage", "Hours", "OT Hours", "Reg Pay", "OT Pay", "Gross Pay");
printf("---------------------------------------------------------------------------------\n");
// Access each employee and print to screen
for (i = 0; i < SIZE; i++)
{
printf("%-10ld $%8.2f %8.1f %10.1f $%9.2f $%11.2f $%9.2f\n", clockNumber[i], wageRate[i], hours[i], overtimeHrs[i],
normalPay[i], overtimePay[i], grossPay[i]);
}
printf("---------------------------------------------------------------------------------\n");
return 0;
}
Ly8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vCi8vIEFzc2lnbm1lbnQgNCAtIEFycmF5cwovLwovLyBOYW1lOiBUaW5hIEdheWxlLUNhbXBiZWxsCi8vCi8vIENsYXNzOiBDIFByb2dyYW1taW5nLCBGYWxsLCAyMDI2Ci8vCi8vIERhdGU6IE9jdG9iZXIgOSwgMjAyNgovLwovLyBEZXNjcmlwdGlvbjogUHJvZ3JhbSB3aGljaCBkZXRlcm1pbmVzIG92ZXJ0aW1lIGFuZCAKLy8gZ3Jvc3MgcGF5IGZvciBhIHNldCBvZiBlbXBsb3llZXMgd2l0aCBvdXRwdXRzIHNlbnQgCi8vIHRvIHN0YW5kYXJkIG91dHB1dCAodGhlIHNjcmVlbikuCi8vCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiNpbmNsdWRlIDxzdGRpby5oPgoKI2luY2x1ZGUgPHN0ZGlvLmg+CgovLyBjb25zdGFudHMgdG8gdXNlCiNkZWZpbmUgU0laRSA1ICAgICAgICAgICAvLyBudW1iZXIgb2YgZW1wbG95ZWVzIHRvIHByb2Nlc3MKI2RlZmluZSBTVERfSE9VUlMgNDAuMCAgIC8vIG5vcm1hbCB3b3JrIHdlZWsgaG91cnMgYmVmb3JlIG92ZXJ0aW1lCiNkZWZpbmUgT1RfUkFURSAxLjUgICAgICAvLyB0aW1lIGFuZCBoYWxmIG92ZXJ0aW1lIHNldHRpbmcKCmludCBtYWluKCkKewogICAgLy8gdW5pcXVlIGVtcGxveWVlIGlkZW50aWZpZXIKICAgIGxvbmcgaW50IGNsb2NrTnVtYmVyIFtTSVpFXSA9IHs5ODQwMSwgNTI2NDg4LCA3NjUzNDksIDM0NjQ1LCAxMjc2MTV9OwogCiAgICBmbG9hdCBncm9zc1BheSBbU0laRV07ICAgICAvLyB3ZWVrbHkgZ3Jvc3MgcGF5IC0gbm9ybWFsIHBheSArIG92ZXJ0aW1lIHBheSAgICAgICAgIAogICAgZmxvYXQgaG91cnMgW1NJWkVdOyAgICAgICAgLy8gaG91cnMgd29ya2VkIGluIGEgZ2l2ZW4gd2VlawogICAgaW50IGk7ICAgICAgICAgICAgICAgICAgICAgLy8gbG9vcCBhbmQgYXJyYXkgaW5kZXgKICAgIGZsb2F0IG5vcm1hbFBheSBbU0laRV07ICAgIC8vIG5vcm1hbCB3ZWVrbHkgcGF5IHdpdGhvdXQgYW55IG92ZXJ0aW1lCiAgICBmbG9hdCBvdmVydGltZUhyc1tTSVpFXTsgICAvLyBvdmVydGltZSBob3VycyB3b3JrZWQgaW4gYSBnaXZlbiB3ZWVrCiAgICBmbG9hdCBvdmVydGltZVBheSBbU0laRV07ICAvLyBvdmVydGltZSBwYXkgZm9yIGEgZ2l2ZW4gd2VlawoKICAgIC8vIGhvdXJseSBwYXkgZm9yIGVhY2ggZW1wbG95ZWUKICAgIGZsb2F0IHdhZ2VSYXRlIFtTSVpFXSA9IHsxMC42LCA5Ljc1LCAxMC41LCAxMi4yNSwgOC4zNX07IAoKICAgIHByaW50ZiAoIlxuKioqIFBheSBDYWxjdWxhdG9yICoqKlxuXG4iKTsKCiAgICAvLyBQcm9jZXNzIGVhY2ggZW1wbG95ZWUgb25lIGF0IGEgdGltZQogICAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkrKykKICAgIHsKICAgICAgICAvLyBQcm9tcHQgYW5kIFJlYWQgaW4gaG91cnMgd29ya2VkIGZvciBlbXBsb3llZQogICAgICAgIHByaW50ZigiRW50ZXIgaG91cnMgd29ya2VkIGZvciBlbXBsb3llZSAlMDZsZDogIiwgY2xvY2tOdW1iZXJbaV0pOwogICAgICAgIHNjYW5mKCIlZiIsICZob3Vyc1tpXSk7CgogICAgICAgIC8vIENhbGN1bGF0ZSBvdmVydGltZSBhbmQgZ3Jvc3MgcGF5IGZvciBlbXBsb3llZQogICAgICAgIGlmIChob3Vyc1tpXSA+IFNURF9IT1VSUykKICAgICAgICB7CiAgICAgICAgICAgIG92ZXJ0aW1lSHJzW2ldID0gaG91cnNbaV0gLSBTVERfSE9VUlM7CiAgICAgICAgICAgIG5vcm1hbFBheVtpXSA9IFNURF9IT1VSUyAqIHdhZ2VSYXRlW2ldOwogICAgICAgICAgICBvdmVydGltZVBheVtpXSA9IG92ZXJ0aW1lSHJzW2ldICogd2FnZVJhdGVbaV0gKiBPVF9SQVRFOwogICAgICAgIH0KICAgICAgICBlbHNlIC8vIG5vIE9UCiAgICAgICAgewogICAgICAgICAgICBvdmVydGltZUhyc1tpXSA9IDAuMDsKICAgICAgICAgICAgbm9ybWFsUGF5W2ldID0gaG91cnNbaV0gKiB3YWdlUmF0ZVtpXTsKICAgICAgICAgICAgb3ZlcnRpbWVQYXlbaV0gPSAwLjA7CiAgICAgICAgfQoKICAgICAgICAvLyBDYWxjdWxhdGUgR3Jvc3MgUGF5CiAgICAgICAgZ3Jvc3NQYXlbaV0gPSBub3JtYWxQYXlbaV0gKyBvdmVydGltZVBheVtpXTsKICAgIH0KCiAgICAvLyBQcmludCBhIG5pY2UgdGFibGUgaGVhZGVyCiAgICBwcmludGYoIlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKICAgIHByaW50ZigiJS0xMHMgJS0xMHMgJS04cyAlLTEwcyAlLTEwcyAlLTEycyAlLTEwc1xuIiwgCiAgICAgICAgICAgIkNsb2NrIyIsICJXYWdlIiwgIkhvdXJzIiwgIk9UIEhvdXJzIiwgIlJlZyBQYXkiLCAiT1QgUGF5IiwgIkdyb3NzIFBheSIpOwogICAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwoKICAgIC8vIEFjY2VzcyBlYWNoIGVtcGxveWVlIGFuZCBwcmludCB0byBzY3JlZW4KICAgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyBpKyspCiAgICB7CiAgICAgICAgcHJpbnRmKCIlLTEwbGQgJCU4LjJmICU4LjFmICUxMC4xZiAkJTkuMmYgJCUxMS4yZiAkJTkuMmZcbiIsCiAgICAgICAgICAgICAgIGNsb2NrTnVtYmVyW2ldLCB3YWdlUmF0ZVtpXSwgaG91cnNbaV0sIG92ZXJ0aW1lSHJzW2ldLCAKICAgICAgICAgICAgICAgbm9ybWFsUGF5W2ldLCBvdmVydGltZVBheVtpXSwgZ3Jvc3NQYXlbaV0pOwogICAgfQogICAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwoKICAgIHJldHVybiAwOwp9Cg==