//*******************************************************
//
// Assignment 4 - Arrays
//
// Name: Seth Hin
//
// Class: C Programming, Spring 2026
//
// Date: February 17, 2026
//
// Description: Program which determines overtime and
// gross pay for a set of employees with formatted totals
// and averages printed to the screen.
//
//********************************************************
#include <stdio.h>
// constants to use
#define SIZE 5
#define STD_HOURS 40.0
#define OT_RATE 1.5
int main( )
{
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] ;
float wageRate [ SIZE] = { 10.6 , 9.75 , 10.5 , 12.25 , 8.35 } ;
// *** ADDED BY STUDENT (Totals) ***
float totalWage = 0 , totalHours = 0 , totalOT = 0 , totalGross = 0 ;
printf ( "\n *** Pay Calculator ***\n \n " ) ;
for ( i = 0 ; i < SIZE; i++ )
{
// TODO - Prompt and Read in hours worked for employee
// *** ADDED BY STUDENT ***
printf ( "Enter hours worked for employee %06ld: " , clockNumber
[ i
] ) ;
if ( hours[ i] >= STD_HOURS)
{
overtimeHrs[ i] = hours[ i] - STD_HOURS;
// TODO: Calculate arrays normalPay and overtimePay with overtime
// *** ADDED BY STUDENT ***
normalPay[ i] = STD_HOURS * wageRate[ i] ;
overtimePay[ i] = overtimeHrs[ i] * wageRate[ i] * OT_RATE;
}
else
{
overtimeHrs[ i] = 0 ;
// TODO: Calculate arrays normalPay and overtimePay without overtime
// *** ADDED BY STUDENT ***
normalPay[ i] = hours[ i] * wageRate[ i] ;
overtimePay[ i] = 0 ;
}
grossPay[ i] = normalPay[ i] + overtimePay[ i] ;
// *** ADDED BY STUDENT (Accumulate totals) ***
totalWage += wageRate[ i] ;
totalHours += hours[ i] ;
totalOT += overtimeHrs[ i] ;
totalGross += grossPay[ i] ;
}
// TODO: Print formatted table header
// *** ADDED BY STUDENT ***
printf ( "\n Clock#\t Wage#\t Hours\t OT\t Gross\n " ) ; printf ( "--------------\t ---------\t --------\t -------\t -----------\n " ) ;
for ( i = 0 ; i < SIZE; i++ )
{
// TODO: Print employee information from your arrays
// *** ADDED BY STUDENT ***
printf ( "%06ld\t %.2f\t %.1f\t %.1f\t %.2f\n " , clockNumber[ i] ,
wageRate[ i] ,
hours[ i] ,
overtimeHrs[ i] ,
grossPay[ i] ) ;
}
printf ( "--------------\t ---------\t --------\t -------\t -----------\n " ) ;
// *** ADDED BY STUDENT (Totals row) ***
printf ( "Total\t %.2f\t %.1f\t %.1f\t %.2f\n " , totalWage, totalHours, totalOT, totalGross) ;
// *** ADDED BY STUDENT (Average row) ***
printf ( "Average\t %.2f\t %.1f\t %.1f\t %.2f\n " , totalWage/ SIZE,
totalHours/ SIZE,
totalOT/ SIZE,
totalGross/ SIZE) ;
return ( 0 ) ;
}
Ly8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vCi8vIEFzc2lnbm1lbnQgNCAtIEFycmF5cwovLwovLyBOYW1lOiBTZXRoIEhpbgovLwovLyBDbGFzczogQyBQcm9ncmFtbWluZywgU3ByaW5nIDIwMjYKLy8KLy8gRGF0ZTogRmVicnVhcnkgMTcsIDIwMjYKLy8KLy8gRGVzY3JpcHRpb246IFByb2dyYW0gd2hpY2ggZGV0ZXJtaW5lcyBvdmVydGltZSBhbmQgCi8vIGdyb3NzIHBheSBmb3IgYSBzZXQgb2YgZW1wbG95ZWVzIHdpdGggZm9ybWF0dGVkIHRvdGFscwovLyBhbmQgYXZlcmFnZXMgcHJpbnRlZCB0byB0aGUgc2NyZWVuLgovLwovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgojaW5jbHVkZSA8c3RkaW8uaD4KCi8vIGNvbnN0YW50cyB0byB1c2UKI2RlZmluZSBTSVpFIDUKI2RlZmluZSBTVERfSE9VUlMgNDAuMAojZGVmaW5lIE9UX1JBVEUgMS41CgppbnQgbWFpbigpCnsKICAgIGxvbmcgaW50IGNsb2NrTnVtYmVyIFtTSVpFXSA9IHs5ODQwMSwgNTI2NDg4LCA3NjUzNDksIDM0NjQ1LCAxMjc2MTV9OwogCiAgICBmbG9hdCBncm9zc1BheSBbU0laRV07ICAgICAgICAgIAogICAgZmxvYXQgaG91cnMgW1NJWkVdOyAgICAgICAgCiAgICBpbnQgaTsgICAgICAgICAgICAgICAgICAgICAKICAgIGZsb2F0IG5vcm1hbFBheSBbU0laRV07ICAgIAogICAgZmxvYXQgb3ZlcnRpbWVIcnNbU0laRV07ICAgCiAgICBmbG9hdCBvdmVydGltZVBheSBbU0laRV07ICAKCiAgICBmbG9hdCB3YWdlUmF0ZSBbU0laRV0gPSB7MTAuNiwgOS43NSwgMTAuNSwgMTIuMjUsIDguMzV9OyAKCiAgICAvLyAqKiogQURERUQgQlkgU1RVREVOVCAoVG90YWxzKSAqKioKICAgIGZsb2F0IHRvdGFsV2FnZSA9IDAsIHRvdGFsSG91cnMgPSAwLCB0b3RhbE9UID0gMCwgdG90YWxHcm9zcyA9IDA7CgogICAgcHJpbnRmICgiXG4qKiogUGF5IENhbGN1bGF0b3IgKioqXG5cbiIpOwoKICAgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyBpKyspCiAgICB7CgogICAgICAgIC8vIFRPRE8gLSBQcm9tcHQgYW5kIFJlYWQgaW4gaG91cnMgd29ya2VkIGZvciBlbXBsb3llZQogICAgICAgIC8vICoqKiBBRERFRCBCWSBTVFVERU5UICoqKgogICAgICAgIHByaW50ZigiRW50ZXIgaG91cnMgd29ya2VkIGZvciBlbXBsb3llZSAlMDZsZDogIiwgY2xvY2tOdW1iZXJbaV0pOwogICAgICAgIHNjYW5mKCIlZiIsICZob3Vyc1tpXSk7CgogICAgICAgIGlmIChob3Vyc1tpXSA+PSBTVERfSE9VUlMpCiAgICAgICAgewogICAgICAgICAgICBvdmVydGltZUhyc1tpXSA9IGhvdXJzW2ldIC0gU1REX0hPVVJTOwoKICAgICAgICAgICAgLy8gVE9ETzogQ2FsY3VsYXRlIGFycmF5cyBub3JtYWxQYXkgYW5kIG92ZXJ0aW1lUGF5IHdpdGggb3ZlcnRpbWUKICAgICAgICAgICAgLy8gKioqIEFEREVEIEJZIFNUVURFTlQgKioqCiAgICAgICAgICAgIG5vcm1hbFBheVtpXSA9IFNURF9IT1VSUyAqIHdhZ2VSYXRlW2ldOwogICAgICAgICAgICBvdmVydGltZVBheVtpXSA9IG92ZXJ0aW1lSHJzW2ldICogd2FnZVJhdGVbaV0gKiBPVF9SQVRFOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBvdmVydGltZUhyc1tpXSA9IDA7CgogICAgICAgICAgICAvLyBUT0RPOiBDYWxjdWxhdGUgYXJyYXlzIG5vcm1hbFBheSBhbmQgb3ZlcnRpbWVQYXkgd2l0aG91dCBvdmVydGltZQogICAgICAgICAgICAvLyAqKiogQURERUQgQlkgU1RVREVOVCAqKioKICAgICAgICAgICAgbm9ybWFsUGF5W2ldID0gaG91cnNbaV0gKiB3YWdlUmF0ZVtpXTsKICAgICAgICAgICAgb3ZlcnRpbWVQYXlbaV0gPSAwOwogICAgICAgIH0KCiAgICAgICAgZ3Jvc3NQYXlbaV0gPSBub3JtYWxQYXlbaV0gKyBvdmVydGltZVBheVtpXTsKCiAgICAgICAgLy8gKioqIEFEREVEIEJZIFNUVURFTlQgKEFjY3VtdWxhdGUgdG90YWxzKSAqKioKICAgICAgICB0b3RhbFdhZ2UgKz0gd2FnZVJhdGVbaV07CiAgICAgICAgdG90YWxIb3VycyArPSBob3Vyc1tpXTsKICAgICAgICB0b3RhbE9UICs9IG92ZXJ0aW1lSHJzW2ldOwogICAgICAgIHRvdGFsR3Jvc3MgKz0gZ3Jvc3NQYXlbaV07CiAgICB9CgogICAgLy8gVE9ETzogUHJpbnQgZm9ybWF0dGVkIHRhYmxlIGhlYWRlcgogICAgLy8gKioqIEFEREVEIEJZIFNUVURFTlQgKioqCiAgICBwcmludGYoIlxuQ2xvY2sjXHRXYWdlI1x0SG91cnNcdE9UXHRHcm9zc1xuIik7CiAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tXHQtLS0tLS0tLS1cdC0tLS0tLS0tXHQtLS0tLS0tXHQtLS0tLS0tLS0tLVxuIik7CgogICAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkrKykKICAgIHsKICAgICAgICAvLyBUT0RPOiBQcmludCBlbXBsb3llZSBpbmZvcm1hdGlvbiBmcm9tIHlvdXIgYXJyYXlzCiAgICAgICAgLy8gKioqIEFEREVEIEJZIFNUVURFTlQgKioqCiAgICAgICAgcHJpbnRmKCIlMDZsZFx0JS4yZlx0JS4xZlx0JS4xZlx0JS4yZlxuIiwKICAgICAgICAgICAgICAgY2xvY2tOdW1iZXJbaV0sCiAgICAgICAgICAgICAgIHdhZ2VSYXRlW2ldLAogICAgICAgICAgICAgICBob3Vyc1tpXSwKICAgICAgICAgICAgICAgb3ZlcnRpbWVIcnNbaV0sCiAgICAgICAgICAgICAgIGdyb3NzUGF5W2ldKTsKICAgIH0KCiAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tXHQtLS0tLS0tLS1cdC0tLS0tLS0tXHQtLS0tLS0tXHQtLS0tLS0tLS0tLVxuIik7CgogICAgLy8gKioqIEFEREVEIEJZIFNUVURFTlQgKFRvdGFscyByb3cpICoqKgogICAgcHJpbnRmKCJUb3RhbFx0JS4yZlx0JS4xZlx0JS4xZlx0JS4yZlxuIiwKICAgICAgICAgICB0b3RhbFdhZ2UsIHRvdGFsSG91cnMsIHRvdGFsT1QsIHRvdGFsR3Jvc3MpOwoKICAgIC8vICoqKiBBRERFRCBCWSBTVFVERU5UIChBdmVyYWdlIHJvdykgKioqCiAgICBwcmludGYoIkF2ZXJhZ2VcdCUuMmZcdCUuMWZcdCUuMWZcdCUuMmZcbiIsCiAgICAgICAgICAgdG90YWxXYWdlL1NJWkUsCiAgICAgICAgICAgdG90YWxIb3Vycy9TSVpFLAogICAgICAgICAgIHRvdGFsT1QvU0laRSwKICAgICAgICAgICB0b3RhbEdyb3NzL1NJWkUpOwoKICAgIHJldHVybigwKTsKfQo=