//*******************************************************
//
// Assignment 4 - Arrays
//
// Name: <Neftalia Cruz>
//
// Class: C Programming, <Fall, 2026>
//
// Date: <September 30, 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()
{
// Declare variables needed for the program
// Recommend an array for clock, wage, hours,
// ... and overtime hours and gross.
// Recommend arrays also for normal pay and overtime pay
// It is OK to pre-fill clock and wage values ... or you can prompt for them
// 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};
float wageSum, hoursSum, otSum, grossSum;
printf ("\n*** Pay Calculator ***\n\n");
// Process each employee one at a time
for (i = 0; i < SIZE; i++)
{
wageSum += wageRate[i];
printf("enter hours worked for employee %ld", clockNumber
[i
]);
hoursSum += HOURS[i];
// Calculate overtime and gross pay for employee
if (HOURS[i] >= STD_HOURS)
{
overtimeHrs[i] = HOURS[i] - STD_HOURS;
otSum += overtimeHrs[i];
normalPay[i] = STD_HOURS * wageRate[i];
overtimePay[i] = overtimeHrs[i] * wageRate[i] * OT_RATE;
}
else // no OT
{
overtimeHrs[i] = 0;
normalPay[i] = HOURS[i] * wageRate[i];
overtimePay[i] = 0;
}
// Calculate Gross Pay
grossPay[i] = normalPay[i] + overtimePay[i];
grossSum += grossPay[i];
}
printf("-----------------------------------------\n"); printf(" clock # Wage HOURS OT Gross\n"); printf("-----------------------------------------\n");
// Now that we have all the information in our arrays, we can
// Access each employee and print to screen or file
for (i = 0; i < SIZE; i++)
{
//
printf(" %06ld %5.2f %5.1f %6.1f %10.2f\n", clockNumber[i],
wageRate[i],
HOURS[i],
overtimeHrs[i],
grossPay[i]);
}
printf(" -----------------------------------------\n"); printf(" Total %5.2f %5.2f %6.1f %10.2f\n", wageSum,
hoursSum,
otSum,
grossSum);
printf(" Average %5.2f %5.2f %6.1f %10.2f\n", wageSum / SIZE,
hoursSum / SIZE,
otSum / SIZE,
grossSum / SIZE);
return(0);
}
Ly8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vCi8vIEFzc2lnbm1lbnQgNCAtIEFycmF5cwovLwovLyBOYW1lOiA8TmVmdGFsaWEgQ3J1ej4KLy8KLy8gQ2xhc3M6IEMgUHJvZ3JhbW1pbmcsIDxGYWxsLCAyMDI2PgovLwovLyBEYXRlOiA8U2VwdGVtYmVyIDMwLCAyMDI2PgovLwovLyBEZXNjcmlwdGlvbjogUHJvZ3JhbSB3aGljaCBkZXRlcm1pbmVzIG92ZXJ0aW1lIGFuZCAKLy8gZ3Jvc3MgcGF5IGZvciBhIHNldCBvZiBlbXBsb3llZXMgd2l0aCBvdXRwdXRzIHNlbnQgCi8vIHRvIHN0YW5kYXJkIG91dHB1dCAodGhlIHNjcmVlbikuCi8vCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiNpbmNsdWRlIDxzdGRpby5oPgoKLy8gY29uc3RhbnRzIHRvIHVzZQojZGVmaW5lIFNJWkUgNSAgICAgICAgICAgLy8gbnVtYmVyIG9mIGVtcGxveWVlcyB0byBwcm9jZXNzCiNkZWZpbmUgU1REX0hPVVJTIDQwLjAgICAvLyBub3JtYWwgd29yayB3ZWVrIGhvdXJzIGJlZm9yZSBvdmVydGltZQojZGVmaW5lIE9UX1JBVEUgMS41ICAgICAgLy8gdGltZSBhbmQgaGFsZiBvdmVydGltZSBzZXR0aW5nCgppbnQgbWFpbigpCnsKCgogICAgLy8gRGVjbGFyZSB2YXJpYWJsZXMgbmVlZGVkIGZvciB0aGUgcHJvZ3JhbQogICAgLy8gUmVjb21tZW5kIGFuIGFycmF5IGZvciBjbG9jaywgd2FnZSwgaG91cnMsCiAgICAvLyAuLi4gYW5kIG92ZXJ0aW1lIGhvdXJzIGFuZCBncm9zcy4KICAgIC8vIFJlY29tbWVuZCBhcnJheXMgYWxzbyBmb3Igbm9ybWFsIHBheSBhbmQgb3ZlcnRpbWUgcGF5ICAgICAgICAgICAgICAgIAogICAgLy8gSXQgaXMgT0sgdG8gcHJlLWZpbGwgY2xvY2sgYW5kIHdhZ2UgdmFsdWVzIC4uLiBvciB5b3UgY2FuIHByb21wdCBmb3IgdGhlbQoKICAgIC8vIHVuaXF1ZSBlbXBsb3llZSBpZGVudGlmaWVyCiAgICBsb25nIGludCBjbG9ja051bWJlciBbU0laRV0gPSB7OTg0MDEsIDUyNjQ4OCwgNzY1MzQ5LCAzNDY0NSwgMTI3NjE1fTsKIAogICAgZmxvYXQgZ3Jvc3NQYXkgW1NJWkVdOyAgICAgLy8gd2Vla2x5IGdyb3NzIHBheSAtIG5vcm1hbCBwYXkgK292ZXJ0aW1lIHBheSAgICAgICAgIAogICAgZmxvYXQgSE9VUlMgW1NJWkVdOyAgICAgICAgLy8gaG91cnMgd29ya2VkIGluIGEgZ2l2ZW4gd2VlawogICAgaW50IGk7ICAgICAgICAgICAgICAgICAgICAgLy8gbG9vcCBhbmQgYXJyYXkgaW5kZXgKICAgIGZsb2F0IG5vcm1hbFBheSBbU0laRV07ICAgIC8vIG5vcm1hbCB3ZWVrbHkgcGF5IHdpdGhvdXQgYW55IG92ZXJ0aW1lCiAgICBmbG9hdCBvdmVydGltZUhyc1tTSVpFXTsgICAvLyBvdmVydGltZSBob3VycyB3b3JrZWQgaW4gYSBnaXZlbiB3ZWVrCiAgICBmbG9hdCBvdmVydGltZVBheSBbU0laRV07ICAvLyBvdmVydGltZSBwYXkgZm9yIGEgZ2l2ZW4gd2VlawoKICAgIC8vIGhvdXJseSBwYXkgZm9yIGVhY2ggZW1wbG95ZWUKICAgIGZsb2F0IHdhZ2VSYXRlIFtTSVpFXSA9IHsxMC42LCA5Ljc1LCAxMC41LCAxMi4yNSwgOC4zNX07IAogICAgCiAgICBmbG9hdCB3YWdlU3VtLCBob3Vyc1N1bSwgb3RTdW0sIGdyb3NzU3VtOwoKICAgIHByaW50ZiAoIlxuKioqIFBheSBDYWxjdWxhdG9yICoqKlxuXG4iKTsKCiAgICAvLyBQcm9jZXNzIGVhY2ggZW1wbG95ZWUgb25lIGF0IGEgdGltZQogICAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkrKykKICAgIHsKICAgIAl3YWdlU3VtICs9IHdhZ2VSYXRlW2ldOwoKICAgICAgICBwcmludGYoImVudGVyIGhvdXJzIHdvcmtlZCBmb3IgZW1wbG95ZWUgJWxkIiwgY2xvY2tOdW1iZXJbaV0pOwoJICAgIHNjYW5mKCIlZiIsICZIT1VSU1tpXSk7CgkgICAgCgkgICAgaG91cnNTdW0gKz0gSE9VUlNbaV07CgogICAgICAgIC8vIENhbGN1bGF0ZSBvdmVydGltZSBhbmQgZ3Jvc3MgcGF5IGZvciBlbXBsb3llZQogICAgICAgIGlmIChIT1VSU1tpXSA+PSBTVERfSE9VUlMpCiAgICAgICAgewogICAgICAgICAgICBvdmVydGltZUhyc1tpXSA9IEhPVVJTW2ldIC0gU1REX0hPVVJTOwogICAgICAgICAgICBvdFN1bSArPSBvdmVydGltZUhyc1tpXTsKICAgICAgICAgICAgCiAgICAgICAgICAgIG5vcm1hbFBheVtpXSA9IFNURF9IT1VSUyAqIHdhZ2VSYXRlW2ldOwogICAgICAgICAgICBvdmVydGltZVBheVtpXSA9IG92ZXJ0aW1lSHJzW2ldICogd2FnZVJhdGVbaV0gKiBPVF9SQVRFOyAKICAgICAgICAgICAgIAogICAgICAgIH0KICAgICAgICBlbHNlIC8vIG5vIE9UCiAgICAgICAgewogICAgICAgICAgICBvdmVydGltZUhyc1tpXSA9IDA7CiAgICAgICAgICAgIG5vcm1hbFBheVtpXSA9IEhPVVJTW2ldICogd2FnZVJhdGVbaV07CiAgICAgICAgICAgIG92ZXJ0aW1lUGF5W2ldID0gMDsKCiAgICAgICAgfQoKICAgICAgICAvLyBDYWxjdWxhdGUgR3Jvc3MgUGF5CiAgICAgICAgZ3Jvc3NQYXlbaV0gPSBub3JtYWxQYXlbaV0gKyBvdmVydGltZVBheVtpXTsKICAgICAgICBncm9zc1N1bSArPSBncm9zc1BheVtpXTsKICAgIH0KCiAgICAgICAgCiAgICBwcmludGYoIlxuIik7CiAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKICAgIHByaW50ZigiICAgIGNsb2NrICMgICBXYWdlICAgSE9VUlMgICAgT1QgICAgR3Jvc3NcbiIpOwogICAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CgogICAgLy8gTm93IHRoYXQgd2UgaGF2ZSBhbGwgdGhlIGluZm9ybWF0aW9uIGluIG91ciBhcnJheXMsIHdlIGNhbgogICAgLy8gQWNjZXNzIGVhY2ggZW1wbG95ZWUgYW5kIHByaW50IHRvIHNjcmVlbiBvciBmaWxlCiAgICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKQogICAgewogICAgICAgIC8vIAogICAgICAgIHByaW50ZigiICAgICUwNmxkICAgICU1LjJmICAgICU1LjFmICAgICU2LjFmICAgICUxMC4yZlxuIiwKICAgICAgICAgICAgICAgY2xvY2tOdW1iZXJbaV0sCiAgICAgICAgICAgICAgIHdhZ2VSYXRlW2ldLAogICAgICAgICAgICAgICBIT1VSU1tpXSwKICAgICAgICAgICAgICAgb3ZlcnRpbWVIcnNbaV0sCiAgICAgICAgICAgICAgIGdyb3NzUGF5W2ldKTsKICAgIH0KICAgIAogICAgcHJpbnRmKCIgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKICAgIHByaW50ZigiICAgICBUb3RhbCAgICAlNS4yZiAgICAlNS4yZiAgICAlNi4xZiAgICAlMTAuMmZcbiIsCiAgICAgICAgICAgICAgIHdhZ2VTdW0sCiAgICAgICAgICAgICAgIGhvdXJzU3VtLAogICAgICAgICAgICAgICBvdFN1bSwKICAgICAgICAgICAgICAgZ3Jvc3NTdW0pOwogICAgcHJpbnRmKCIgICBBdmVyYWdlICAgICU1LjJmICAgICU1LjJmICAgICU2LjFmICAgICUxMC4yZlxuIiwKICAgICAgICAgICAgICAgd2FnZVN1bSAvIFNJWkUsCiAgICAgICAgICAgICAgIGhvdXJzU3VtIC8gU0laRSwKICAgICAgICAgICAgICAgb3RTdW0gLyBTSVpFLAogICAgICAgICAgICAgICBncm9zc1N1bSAvIFNJWkUpOwogICAgCiAgICByZXR1cm4oMCk7CiAgICB9