#//*******************************************************
//
// Assignment 4 - Arrays
//
// Name: Seth Hin
//
// Class: C Programming, Spring 2026
//
// Date: February 18, 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>
// 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++)
{
// hours worked for employee
printf("%ld: ", clockNumber
[i
]);
// calculate overtime and gross pay for employee
if (hours[i] >= STD_HOURS)
{
overtimeHrs[i] = hours[i] - STD_HOURS;
//calculate normalPay and overtimePay with overtime
normalPay[i] = STD_HOURS * wageRate[i];
overtimePay[i] = overtimeHrs[i] * wageRate[i] * OT_RATE;
}
else // no OT
{
overtimeHrs[i] = 0;
//calculate normalPay and overtimePay without overtime
normalPay[i] = hours[i] * wageRate[i];
overtimePay[i] = 0;
}
// calculate Gross Pay
grossPay[i] = normalPay[i] + overtimePay[i];
}
// print table header
printf("\n%-10s %-10s %-10s %-12s %-12s %-12s %-12s\n", "Clock #", "Wage", "Hours", "OT Hours",
"Normal Pay", "OT Pay", "Gross Pay");
printf("-------------------------------------------------------------------------------\n");
for (i = 0; i < SIZE; i++)
{
// print employee information from arrays
printf("%-10ld %-10.2f %-10.2f %-12.2f %-12.2f %-12.2f %-12.2f\n", clockNumber[i],
wageRate[i],
hours[i],
overtimeHrs[i],
normalPay[i],
overtimePay[i],
grossPay[i]);
}
return(0);
}
Iy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLwovLyBBc3NpZ25tZW50IDQgLSBBcnJheXMKLy8KLy8gTmFtZTogU2V0aCBIaW4KLy8KLy8gQ2xhc3M6IEMgUHJvZ3JhbW1pbmcsIFNwcmluZyAyMDI2Ci8vCi8vIERhdGU6IEZlYnJ1YXJ5IDE4LCAyMDI2Ci8vCi8vIERlc2NyaXB0aW9uOiBQcm9ncmFtIHdoaWNoIGRldGVybWluZXMgb3ZlcnRpbWUgYW5kIAovLyBncm9zcyBwYXkgZm9yIGEgc2V0IG9mIGVtcGxveWVlcyB3aXRoIG91dHB1dHMgc2VudCAKLy8gdG8gc3RhbmRhcmQgb3V0cHV0ICh0aGUgc2NyZWVuKS4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKI2luY2x1ZGUgPHN0ZGlvLmg+CgovLyBjb25zdGFudHMgdG8gdXNlCiNkZWZpbmUgU0laRSA1ICAgICAgICAgICAvLyBudW1iZXIgb2YgZW1wbG95ZWVzIHRvIHByb2Nlc3MKI2RlZmluZSBTVERfSE9VUlMgNDAuMCAgIC8vIG5vcm1hbCB3b3JrIHdlZWsgaG91cnMgYmVmb3JlIG92ZXJ0aW1lCiNkZWZpbmUgT1RfUkFURSAxLjUgICAgICAvLyB0aW1lIGFuZCBoYWxmIG92ZXJ0aW1lIHNldHRpbmcKCmludCBtYWluKCkKewoKCiAgICAKCiAgICAvLyB1bmlxdWUgZW1wbG95ZWUgaWRlbnRpZmllcgogICAgIGxvbmcgaW50IGNsb2NrTnVtYmVyIFtTSVpFXSA9IHs5ODQwMSwgNTI2NDg4LCA3NjUzNDksIDM0NjQ1LCAxMjc2MTV9OwogCiAgICBmbG9hdCBncm9zc1BheSBbU0laRV07ICAgICAvLyB3ZWVrbHkgZ3Jvc3MgcGF5IC0gbm9ybWFsIHBheSArIG92ZXJ0aW1lIHBheSAgICAgICAgIAogICAgZmxvYXQgaG91cnMgW1NJWkVdOyAgICAgICAgLy8gaG91cnMgd29ya2VkIGluIGEgZ2l2ZW4gd2VlawogICAgaW50IGk7ICAgICAgICAgICAgICAgICAgICAgLy8gbG9vcCBhbmQgYXJyYXkgaW5kZXgKICAgIGZsb2F0IG5vcm1hbFBheSBbU0laRV07ICAgIC8vIG5vcm1hbCB3ZWVrbHkgcGF5IHdpdGhvdXQgYW55IG92ZXJ0aW1lCiAgICBmbG9hdCBvdmVydGltZUhyc1tTSVpFXTsgICAvLyBvdmVydGltZSBob3VycyB3b3JrZWQgaW4gYSBnaXZlbiB3ZWVrCiAgICBmbG9hdCBvdmVydGltZVBheSBbU0laRV07ICAvLyBvdmVydGltZSBwYXkgZm9yIGEgZ2l2ZW4gd2VlawoKICAgIC8vIGhvdXJseSBwYXkgZm9yIGVhY2ggZW1wbG95ZWUKICAgIGZsb2F0IHdhZ2VSYXRlIFtTSVpFXSA9IHsxMC42LCA5Ljc1LCAxMC41LCAxMi4yNSwgOC4zNX07IAoKICAgIHByaW50ZiAoIlxuKioqIFBheSBDYWxjdWxhdG9yICoqKlxuXG4iKTsKCiAgICAvLyBwcm9jZXNzIGVhY2ggZW1wbG95ZWUgb25lIGF0IGEgdGltZQogICAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkrKykKICAgIHsKCiAgICAgICAgLy8gaG91cnMgd29ya2VkIGZvciBlbXBsb3llZQogICAgICAgIHByaW50ZigiJWxkOiAiLCBjbG9ja051bWJlcltpXSk7CiAgICAgICAgc2NhbmYoIiVmIiwgJmhvdXJzW2ldKTsKCiAgICAgICAgLy8gY2FsY3VsYXRlIG92ZXJ0aW1lIGFuZCBncm9zcyBwYXkgZm9yIGVtcGxveWVlCiAgICAgICAgaWYgKGhvdXJzW2ldID49IFNURF9IT1VSUykKICAgICAgICB7CiAgICAgICAgICAgIG92ZXJ0aW1lSHJzW2ldID0gaG91cnNbaV0gLSBTVERfSE9VUlM7CiAgICAgICAgICAgIAogICAgICAgICAgICAvL2NhbGN1bGF0ZSBub3JtYWxQYXkgYW5kIG92ZXJ0aW1lUGF5IHdpdGggb3ZlcnRpbWUKICAgICAgICAgICAgIG5vcm1hbFBheVtpXSA9IFNURF9IT1VSUyAqIHdhZ2VSYXRlW2ldOwogICAgICAgICAgICAgb3ZlcnRpbWVQYXlbaV0gPSBvdmVydGltZUhyc1tpXSAqIHdhZ2VSYXRlW2ldICogT1RfUkFURTsKICAgICAgICB9CiAgICAgICAgZWxzZSAvLyBubyBPVAogICAgICAgIHsKICAgICAgICAgICAgb3ZlcnRpbWVIcnNbaV0gPSAwOwogICAgICAgICAgICAKICAgICAgICAgICAgLy9jYWxjdWxhdGUgbm9ybWFsUGF5IGFuZCBvdmVydGltZVBheSB3aXRob3V0IG92ZXJ0aW1lCgkJCSBub3JtYWxQYXlbaV0gPSBob3Vyc1tpXSAqIHdhZ2VSYXRlW2ldOwogICAgICAgICAgICAgb3ZlcnRpbWVQYXlbaV0gPSAwOwogICAgICAgIH0KCiAgICAgICAgCS8vIGNhbGN1bGF0ZSBHcm9zcyBQYXkKICAgICAgICAJZ3Jvc3NQYXlbaV0gPSBub3JtYWxQYXlbaV0gKyBvdmVydGltZVBheVtpXTsKICAgIH0KCiAgICAJLy8gcHJpbnQgdGFibGUgaGVhZGVyCiAgICAJcHJpbnRmKCJcbiUtMTBzICUtMTBzICUtMTBzICUtMTJzICUtMTJzICUtMTJzICUtMTJzXG4iLAogICAgICAgICAgICJDbG9jayAjIiwgIldhZ2UiLCAiSG91cnMiLCAiT1QgSG91cnMiLAogICAgICAgICAgICJOb3JtYWwgUGF5IiwgIk9UIFBheSIsICJHcm9zcyBQYXkiKTsKICAgICAgICAgICAKICAgIAlwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwoKICAgIAogICAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkrKykKICAgIHsKICAgICAgICAvLyBwcmludCBlbXBsb3llZSBpbmZvcm1hdGlvbiBmcm9tIGFycmF5cwogICAgICAgIHByaW50ZigiJS0xMGxkICUtMTAuMmYgJS0xMC4yZiAlLTEyLjJmICUtMTIuMmYgJS0xMi4yZiAlLTEyLjJmXG4iLAogICAgICAgICAgICAgICBjbG9ja051bWJlcltpXSwKICAgICAgICAgICAgICAgd2FnZVJhdGVbaV0sCiAgICAgICAgICAgICAgIGhvdXJzW2ldLAogICAgICAgICAgICAgICBvdmVydGltZUhyc1tpXSwKICAgICAgICAgICAgICAgbm9ybWFsUGF5W2ldLAogICAgICAgICAgICAgICBvdmVydGltZVBheVtpXSwKICAgICAgICAgICAgICAgZ3Jvc3NQYXlbaV0pOwogICAgfQoKICAgIHJldHVybigwKTsKfQ==