//*******************************************************
//
// 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);
}
Ly8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vCi8vIEFzc2lnbm1lbnQgNCAtIEFycmF5cwovLwovLyBOYW1lOiBTZXRoIEhpbgovLwovLyBDbGFzczogQyBQcm9ncmFtbWluZywgU3ByaW5nIDIwMjYKLy8KLy8gRGF0ZTogRmVicnVhcnkgMTgsIDIwMjYKLy8KLy8gRGVzY3JpcHRpb246IFByb2dyYW0gd2hpY2ggZGV0ZXJtaW5lcyBvdmVydGltZSBhbmQgCi8vIGdyb3NzIHBheSBmb3IgYSBzZXQgb2YgZW1wbG95ZWVzIHdpdGggb3V0cHV0cyBzZW50IAovLyB0byBzdGFuZGFyZCBvdXRwdXQgKHRoZSBzY3JlZW4pLgovLwovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgojaW5jbHVkZSA8c3RkaW8uaD4KCi8vIGNvbnN0YW50cyB0byB1c2UKI2RlZmluZSBTSVpFIDUgICAgICAgICAgIC8vIG51bWJlciBvZiBlbXBsb3llZXMgdG8gcHJvY2VzcwojZGVmaW5lIFNURF9IT1VSUyA0MC4wICAgLy8gbm9ybWFsIHdvcmsgd2VlayBob3VycyBiZWZvcmUgb3ZlcnRpbWUKI2RlZmluZSBPVF9SQVRFIDEuNSAgICAgIC8vIHRpbWUgYW5kIGhhbGYgb3ZlcnRpbWUgc2V0dGluZwoKaW50IG1haW4oKQp7CgoKICAgIAoKICAgIC8vIHVuaXF1ZSBlbXBsb3llZSBpZGVudGlmaWVyCiAgICAgbG9uZyBpbnQgY2xvY2tOdW1iZXIgW1NJWkVdID0gezk4NDAxLCA1MjY0ODgsIDc2NTM0OSwgMzQ2NDUsIDEyNzYxNX07CiAKICAgIGZsb2F0IGdyb3NzUGF5IFtTSVpFXTsgICAgIC8vIHdlZWtseSBncm9zcyBwYXkgLSBub3JtYWwgcGF5ICsgb3ZlcnRpbWUgcGF5ICAgICAgICAgCiAgICBmbG9hdCBob3VycyBbU0laRV07ICAgICAgICAvLyBob3VycyB3b3JrZWQgaW4gYSBnaXZlbiB3ZWVrCiAgICBpbnQgaTsgICAgICAgICAgICAgICAgICAgICAvLyBsb29wIGFuZCBhcnJheSBpbmRleAogICAgZmxvYXQgbm9ybWFsUGF5IFtTSVpFXTsgICAgLy8gbm9ybWFsIHdlZWtseSBwYXkgd2l0aG91dCBhbnkgb3ZlcnRpbWUKICAgIGZsb2F0IG92ZXJ0aW1lSHJzW1NJWkVdOyAgIC8vIG92ZXJ0aW1lIGhvdXJzIHdvcmtlZCBpbiBhIGdpdmVuIHdlZWsKICAgIGZsb2F0IG92ZXJ0aW1lUGF5IFtTSVpFXTsgIC8vIG92ZXJ0aW1lIHBheSBmb3IgYSBnaXZlbiB3ZWVrCgogICAgLy8gaG91cmx5IHBheSBmb3IgZWFjaCBlbXBsb3llZQogICAgZmxvYXQgd2FnZVJhdGUgW1NJWkVdID0gezEwLjYsIDkuNzUsIDEwLjUsIDEyLjI1LCA4LjM1fTsgCgogICAgcHJpbnRmICgiXG4qKiogUGF5IENhbGN1bGF0b3IgKioqXG5cbiIpOwoKICAgIC8vIHByb2Nlc3MgZWFjaCBlbXBsb3llZSBvbmUgYXQgYSB0aW1lCiAgICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKQogICAgewoKICAgICAgICAvLyBob3VycyB3b3JrZWQgZm9yIGVtcGxveWVlCiAgICAgICAgcHJpbnRmKCIlbGQ6ICIsIGNsb2NrTnVtYmVyW2ldKTsKICAgICAgICBzY2FuZigiJWYiLCAmaG91cnNbaV0pOwoKICAgICAgICAvLyBjYWxjdWxhdGUgb3ZlcnRpbWUgYW5kIGdyb3NzIHBheSBmb3IgZW1wbG95ZWUKICAgICAgICBpZiAoaG91cnNbaV0gPj0gU1REX0hPVVJTKQogICAgICAgIHsKICAgICAgICAgICAgb3ZlcnRpbWVIcnNbaV0gPSBob3Vyc1tpXSAtIFNURF9IT1VSUzsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vY2FsY3VsYXRlIG5vcm1hbFBheSBhbmQgb3ZlcnRpbWVQYXkgd2l0aCBvdmVydGltZQogICAgICAgICAgICAgbm9ybWFsUGF5W2ldID0gU1REX0hPVVJTICogd2FnZVJhdGVbaV07CiAgICAgICAgICAgICBvdmVydGltZVBheVtpXSA9IG92ZXJ0aW1lSHJzW2ldICogd2FnZVJhdGVbaV0gKiBPVF9SQVRFOwogICAgICAgIH0KICAgICAgICBlbHNlIC8vIG5vIE9UCiAgICAgICAgewogICAgICAgICAgICBvdmVydGltZUhyc1tpXSA9IDA7CiAgICAgICAgICAgIAogICAgICAgICAgICAvL2NhbGN1bGF0ZSBub3JtYWxQYXkgYW5kIG92ZXJ0aW1lUGF5IHdpdGhvdXQgb3ZlcnRpbWUKCQkJIG5vcm1hbFBheVtpXSA9IGhvdXJzW2ldICogd2FnZVJhdGVbaV07CiAgICAgICAgICAgICBvdmVydGltZVBheVtpXSA9IDA7CiAgICAgICAgfQoKICAgICAgICAJLy8gY2FsY3VsYXRlIEdyb3NzIFBheQogICAgICAgIAlncm9zc1BheVtpXSA9IG5vcm1hbFBheVtpXSArIG92ZXJ0aW1lUGF5W2ldOwogICAgfQoKICAgIAkvLyBwcmludCB0YWJsZSBoZWFkZXIKICAgIAlwcmludGYoIlxuJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnMgJS0xMnMgJS0xMnMgJS0xMnNcbiIsCiAgICAgICAgICAgIkNsb2NrICMiLCAiV2FnZSIsICJIb3VycyIsICJPVCBIb3VycyIsCiAgICAgICAgICAgIk5vcm1hbCBQYXkiLCAiT1QgUGF5IiwgIkdyb3NzIFBheSIpOwogICAgICAgICAgIAogICAgCXByaW50ZigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CgogICAgCiAgICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKQogICAgewogICAgICAgIC8vIHByaW50IGVtcGxveWVlIGluZm9ybWF0aW9uIGZyb20gYXJyYXlzCiAgICAgICAgcHJpbnRmKCIlLTEwbGQgJS0xMC4yZiAlLTEwLjJmICUtMTIuMmYgJS0xMi4yZiAlLTEyLjJmICUtMTIuMmZcbiIsCiAgICAgICAgICAgICAgIGNsb2NrTnVtYmVyW2ldLAogICAgICAgICAgICAgICB3YWdlUmF0ZVtpXSwKICAgICAgICAgICAgICAgaG91cnNbaV0sCiAgICAgICAgICAgICAgIG92ZXJ0aW1lSHJzW2ldLAogICAgICAgICAgICAgICBub3JtYWxQYXlbaV0sCiAgICAgICAgICAgICAgIG92ZXJ0aW1lUGF5W2ldLAogICAgICAgICAgICAgICBncm9zc1BheVtpXSk7CiAgICB9CgogICAgcmV0dXJuKDApOwp9