//*******************************************************
//
// Assignment 4 - Arrays
//
// Name: John Semenuk
//
// Class: C Programming, Spring 2026
//
// Date: 22-Feb-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>
// Declare constants
#define SIZE 5
#define STD_HOURS 40.0
#define OT_RATE 1.5
int main( )
{
// Declare arrays
long int clockNumber[ SIZE] = { 98401 , 526488 , 765349 , 34645 , 127615 } ;
float wageRate[ SIZE] = { 10.6 , 9.75 , 10.5 , 12.25 , 8.35 } ;
float hours[ SIZE] ;
float normalPay[ SIZE] ;
float overtimeHrs[ SIZE] ;
float overtimePay[ SIZE] ;
float grossPay[ SIZE] ;
int i;
printf ( "\n *** Pay Calculator ***\n \n " ) ;
// Input hours and calculate pay
for ( i = 0 ; i < SIZE; i++ )
{
printf ( "Enter hours worked for employee %ld: " , clockNumber
[ i
] ) ;
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
{
overtimeHrs[ i] = 0.0 ;
normalPay[ i] = hours[ i] * wageRate[ i] ;
overtimePay[ i] = 0.0 ;
}
grossPay[ i] = normalPay[ i] + overtimePay[ i] ;
}
// Print report header
printf ( "\n %-10s %-10s %-10s %-10s %-10s %-10s\n " , "Clock #" , "Hours" , "Rate" , "Normal" , "OT Hrs" , "Gross" ) ;
printf ( "------------------------------------------------------------\n " ) ;
// Print employee data
for ( i = 0 ; i < SIZE; i++ )
{
printf ( "%-10ld %-10.2f $%-9.2f $%-9.2f %-10.2f $%-9.2f\n " , clockNumber[ i] ,
hours[ i] ,
wageRate[ i] ,
normalPay[ i] ,
overtimeHrs[ i] ,
grossPay[ i] ) ;
}
return 0 ;
}
Ly8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vCi8vIEFzc2lnbm1lbnQgNCAtIEFycmF5cwovLwovLyBOYW1lOiBKb2huIFNlbWVudWsKLy8KLy8gQ2xhc3M6IEMgUHJvZ3JhbW1pbmcsIFNwcmluZyAyMDI2Ci8vCi8vIERhdGU6IDIyLUZlYi0yMDI2Ci8vCi8vIERlc2NyaXB0aW9uOiBQcm9ncmFtIHdoaWNoIGRldGVybWluZXMgb3ZlcnRpbWUgYW5kIAovLyBncm9zcyBwYXkgZm9yIGEgc2V0IG9mIGVtcGxveWVlcyB3aXRoIG91dHB1dHMgc2VudCAKLy8gdG8gc3RhbmRhcmQgb3V0cHV0ICh0aGUgc2NyZWVuKS4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKI2luY2x1ZGUgPHN0ZGlvLmg+CgovLyBEZWNsYXJlIGNvbnN0YW50cwojZGVmaW5lIFNJWkUgNQojZGVmaW5lIFNURF9IT1VSUyA0MC4wCiNkZWZpbmUgT1RfUkFURSAxLjUKCmludCBtYWluKCApCnsKCiAgICAvLyBEZWNsYXJlIGFycmF5cwogICAgbG9uZyBpbnQgY2xvY2tOdW1iZXJbU0laRV0gPSB7OTg0MDEsIDUyNjQ4OCwgNzY1MzQ5LCAzNDY0NSwgMTI3NjE1fTsKICAgIGZsb2F0IHdhZ2VSYXRlW1NJWkVdID0gezEwLjYsIDkuNzUsIDEwLjUsIDEyLjI1LCA4LjM1fTsKICAgIGZsb2F0IGhvdXJzW1NJWkVdOwogICAgZmxvYXQgbm9ybWFsUGF5W1NJWkVdOwogICAgZmxvYXQgb3ZlcnRpbWVIcnNbU0laRV07CiAgICBmbG9hdCBvdmVydGltZVBheVtTSVpFXTsKICAgIGZsb2F0IGdyb3NzUGF5W1NJWkVdOwoKICAgIGludCBpOwoKICAgIHByaW50ZigiXG4qKiogUGF5IENhbGN1bGF0b3IgKioqXG5cbiIpOwoKICAgIC8vIElucHV0IGhvdXJzIGFuZCBjYWxjdWxhdGUgcGF5CiAgICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKQogICAgewoKICAgICAgICBwcmludGYoIkVudGVyIGhvdXJzIHdvcmtlZCBmb3IgZW1wbG95ZWUgJWxkOiAiLCBjbG9ja051bWJlcltpXSk7CiAgICAgICAgc2NhbmYoIiVmIiwgJmhvdXJzW2ldKTsKCiAgICAgICAgaWYgKGhvdXJzW2ldID4gU1REX0hPVVJTKQogICAgICAgIHsKICAgICAgICAgICAgb3ZlcnRpbWVIcnNbaV0gPSBob3Vyc1tpXSAtIFNURF9IT1VSUzsKICAgICAgICAgICAgbm9ybWFsUGF5W2ldICAgPSBTVERfSE9VUlMgKiB3YWdlUmF0ZVtpXTsKICAgICAgICAgICAgb3ZlcnRpbWVQYXlbaV0gPSBvdmVydGltZUhyc1tpXSAqIHdhZ2VSYXRlW2ldICogT1RfUkFURTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgb3ZlcnRpbWVIcnNbaV0gPSAwLjA7CiAgICAgICAgICAgIG5vcm1hbFBheVtpXSAgID0gaG91cnNbaV0gKiB3YWdlUmF0ZVtpXTsKICAgICAgICAgICAgb3ZlcnRpbWVQYXlbaV0gPSAwLjA7CiAgICAgICAgfQoKICAgICAgICBncm9zc1BheVtpXSA9IG5vcm1hbFBheVtpXSArIG92ZXJ0aW1lUGF5W2ldOwoKICAgIH0KCiAgICAvLyBQcmludCByZXBvcnQgaGVhZGVyCiAgICBwcmludGYoIlxuJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIsCiAgICAgICAgICAgIkNsb2NrICMiLCAiSG91cnMiLCAiUmF0ZSIsICJOb3JtYWwiLCAiT1QgSHJzIiwgIkdyb3NzIik7CgogICAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwoKICAgIC8vIFByaW50IGVtcGxveWVlIGRhdGEKICAgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyBpKyspCiAgICB7CgogICAgICAgIHByaW50ZigiJS0xMGxkICUtMTAuMmYgJCUtOS4yZiAkJS05LjJmICUtMTAuMmYgJCUtOS4yZlxuIiwKICAgICAgICAgICAgICAgY2xvY2tOdW1iZXJbaV0sCiAgICAgICAgICAgICAgIGhvdXJzW2ldLAogICAgICAgICAgICAgICB3YWdlUmF0ZVtpXSwKICAgICAgICAgICAgICAgbm9ybWFsUGF5W2ldLAogICAgICAgICAgICAgICBvdmVydGltZUhyc1tpXSwKICAgICAgICAgICAgICAgZ3Jvc3NQYXlbaV0pOwoKICAgIH0KCiAgICByZXR1cm4gMDsKCn0K