//*******************************************************
//
// 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>
// 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 arrays and variables
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] ; // hours worked
float normalPay[ SIZE] ; // pay for regular hours
float overtimeHrs[ SIZE] ; // overtime hours
float overtimePay[ SIZE] ; // overtime pay
float grossPay[ SIZE] ; // total pay
int i;
printf ( "\n *** Pay Calculator ***\n \n " ) ;
// Input hours worked for each employee
for ( i = 0 ; i < SIZE; i++ )
{
printf ( "Enter hours worked for employee %ld: " , clockNumber
[ i
] ) ;
// Calculate overtime and normal pay
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 ;
normalPay[ i] = hours[ i] * wageRate[ i] ;
overtimePay[ i] = 0 ;
}
// Calculate gross pay
grossPay[ i] = normalPay[ i] + overtimePay[ i] ;
}
// Print header
printf ( "\n %-10s %-10s %-10s %-10s %-10s %-10s\n " , "Clock #" , "Hours" , "Rate" , "Normal" , "OT Hrs" , "Gross" ) ;
printf ( "------------------------------------------------------------\n " ) ;
// Print employee info
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+CgovLyBjb25zdGFudHMgdG8gdXNlCiNkZWZpbmUgU0laRSA1ICAgICAgICAgICAvLyBudW1iZXIgb2YgZW1wbG95ZWVzIHRvIHByb2Nlc3MKI2RlZmluZSBTVERfSE9VUlMgNDAuMCAgIC8vIG5vcm1hbCB3b3JrIHdlZWsgaG91cnMgYmVmb3JlIG92ZXJ0aW1lCiNkZWZpbmUgT1RfUkFURSAxLjUgICAgICAvLyB0aW1lIGFuZCBoYWxmIG92ZXJ0aW1lIHNldHRpbmcKCmludCBtYWluKCkKewogICAgLy8gRGVjbGFyZSBhcnJheXMgYW5kIHZhcmlhYmxlcwogICAgbG9uZyBpbnQgY2xvY2tOdW1iZXJbU0laRV0gPSB7OTg0MDEsIDUyNjQ4OCwgNzY1MzQ5LCAzNDY0NSwgMTI3NjE1fTsKICAgIGZsb2F0IHdhZ2VSYXRlW1NJWkVdID0gezEwLjYsIDkuNzUsIDEwLjUsIDEyLjI1LCA4LjM1fTsKICAgIGZsb2F0IGhvdXJzW1NJWkVdOyAgICAgICAgICAvLyBob3VycyB3b3JrZWQKICAgIGZsb2F0IG5vcm1hbFBheVtTSVpFXTsgICAgICAvLyBwYXkgZm9yIHJlZ3VsYXIgaG91cnMKICAgIGZsb2F0IG92ZXJ0aW1lSHJzW1NJWkVdOyAgICAvLyBvdmVydGltZSBob3VycwogICAgZmxvYXQgb3ZlcnRpbWVQYXlbU0laRV07ICAgIC8vIG92ZXJ0aW1lIHBheQogICAgZmxvYXQgZ3Jvc3NQYXlbU0laRV07ICAgICAgIC8vIHRvdGFsIHBheQogICAgaW50IGk7CgogICAgcHJpbnRmKCJcbioqKiBQYXkgQ2FsY3VsYXRvciAqKipcblxuIik7CgogICAgLy8gSW5wdXQgaG91cnMgd29ya2VkIGZvciBlYWNoIGVtcGxveWVlCiAgICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKQogICAgewogICAgICAgIHByaW50ZigiRW50ZXIgaG91cnMgd29ya2VkIGZvciBlbXBsb3llZSAlbGQ6ICIsIGNsb2NrTnVtYmVyW2ldKTsKICAgICAgICBzY2FuZigiJWYiLCAmaG91cnNbaV0pOwoKICAgICAgICAvLyBDYWxjdWxhdGUgb3ZlcnRpbWUgYW5kIG5vcm1hbCBwYXkKICAgICAgICBpZiAoaG91cnNbaV0gPiBTVERfSE9VUlMpCiAgICAgICAgewogICAgICAgICAgICBvdmVydGltZUhyc1tpXSA9IGhvdXJzW2ldIC0gU1REX0hPVVJTOwogICAgICAgICAgICBub3JtYWxQYXlbaV0gPSBTVERfSE9VUlMgKiB3YWdlUmF0ZVtpXTsKICAgICAgICAgICAgb3ZlcnRpbWVQYXlbaV0gPSBvdmVydGltZUhyc1tpXSAqIHdhZ2VSYXRlW2ldICogT1RfUkFURTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgb3ZlcnRpbWVIcnNbaV0gPSAwOwogICAgICAgICAgICBub3JtYWxQYXlbaV0gPSBob3Vyc1tpXSAqIHdhZ2VSYXRlW2ldOwogICAgICAgICAgICBvdmVydGltZVBheVtpXSA9IDA7CiAgICAgICAgfQoKICAgICAgICAvLyBDYWxjdWxhdGUgZ3Jvc3MgcGF5CiAgICAgICAgZ3Jvc3NQYXlbaV0gPSBub3JtYWxQYXlbaV0gKyBvdmVydGltZVBheVtpXTsKICAgIH0KCiAgICAvLyBQcmludCBoZWFkZXIKICAgIHByaW50ZigiXG4lLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIiwgCiAgICAgICAgICAgIkNsb2NrICMiLCAiSG91cnMiLCAiUmF0ZSIsICJOb3JtYWwiLCAiT1QgSHJzIiwgIkdyb3NzIik7CiAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CgogICAgLy8gUHJpbnQgZW1wbG95ZWUgaW5mbwogICAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkrKykKICAgIHsKICAgICAgICBwcmludGYoIiUtMTBsZCAlLTEwLjJmICQlLTkuMmYgJCUtOS4yZiAlLTEwLjJmICQlLTkuMmZcbiIsIAogICAgICAgICAgICAgICBjbG9ja051bWJlcltpXSwgaG91cnNbaV0sIHdhZ2VSYXRlW2ldLCBub3JtYWxQYXlbaV0sIAogICAgICAgICAgICAgICBvdmVydGltZUhyc1tpXSwgZ3Jvc3NQYXlbaV0pOwogICAgfQoKICAgIHJldHVybiAwOwp9