//
// Assignment 4 - Arrays
//
// Name: Henri Biqiku
//
// Class: C Programming, Fall 2026
//
// Date: Oct 4, 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
#define SIZE 5
#define STD_HOURS 40.0
#define OT_RATE 1.5
int main( )
{
// Unique employee identifier
long int clockNumber[ SIZE] = {
98401 , 526488 , 765349 , 34645 , 127615
} ;
// Hourly wage for each employee
float wageRate[ SIZE] = {
10.60 , 9.75 , 10.50 , 12.25 , 8.35
} ;
// Arrays for hours, overtime, and gross pay
float hours[ SIZE] ;
float overtimeHrs[ SIZE] ;
float grossPay[ SIZE] ;
// Variables used for calculations
float normalPay;
float overtimePay;
int i;
printf ( "\n \t *** Pay Calculator ***\n \n " ) ;
// Read hours and calculate overtime and gross 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 = wageRate[ i] * STD_HOURS;
overtimePay = wageRate[ i] * OT_RATE * overtimeHrs[ i] ;
grossPay[ i] = normalPay + overtimePay;
}
else
{
overtimeHrs[ i] = 0.0 ;
normalPay = wageRate[ i] * hours[ i] ;
overtimePay = 0.0 ;
grossPay[ i] = normalPay;
}
}
// Print report
printf ( "--------------------------------------------------------------------------\n " ) ; printf ( " Clock# Wage Hours OT Gross\n " ) ; printf ( "--------------------------------------------------------------------------\n " ) ;
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 " ) ;
return 0 ;
}
Ly8KLy8gQXNzaWdubWVudCA0IC0gQXJyYXlzCi8vCi8vIE5hbWU6IEhlbnJpIEJpcWlrdQovLwovLyBDbGFzczogQyBQcm9ncmFtbWluZywgRmFsbCAyMDI2Ci8vCi8vIERhdGU6IE9jdCA0LCAyMDI2Ci8vCi8vIERlc2NyaXB0aW9uOiBQcm9ncmFtIHdoaWNoIGRldGVybWluZXMgb3ZlcnRpbWUgYW5kIAovLyBncm9zcyBwYXkgZm9yIGEgc2V0IG9mIGVtcGxveWVlcyB3aXRoIG91dHB1dHMgc2VudCAKLy8gdG8gc3RhbmRhcmQgb3V0cHV0ICh0aGUgc2NyZWVuKS4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKI2luY2x1ZGUgPHN0ZGlvLmg+CgovLyBDb25zdGFudHMKI2RlZmluZSBTSVpFIDUKI2RlZmluZSBTVERfSE9VUlMgNDAuMAojZGVmaW5lIE9UX1JBVEUgMS41CgppbnQgbWFpbigpCnsKICAgIC8vIFVuaXF1ZSBlbXBsb3llZSBpZGVudGlmaWVyCiAgICBsb25nIGludCBjbG9ja051bWJlcltTSVpFXSA9IHsKICAgICAgICA5ODQwMSwgNTI2NDg4LCA3NjUzNDksIDM0NjQ1LCAxMjc2MTUKICAgIH07CgogICAgLy8gSG91cmx5IHdhZ2UgZm9yIGVhY2ggZW1wbG95ZWUKICAgIGZsb2F0IHdhZ2VSYXRlW1NJWkVdID0gewogICAgICAgIDEwLjYwLCA5Ljc1LCAxMC41MCwgMTIuMjUsIDguMzUKICAgIH07CgogICAgLy8gQXJyYXlzIGZvciBob3Vycywgb3ZlcnRpbWUsIGFuZCBncm9zcyBwYXkKICAgIGZsb2F0IGhvdXJzW1NJWkVdOwogICAgZmxvYXQgb3ZlcnRpbWVIcnNbU0laRV07CiAgICBmbG9hdCBncm9zc1BheVtTSVpFXTsKCiAgICAvLyBWYXJpYWJsZXMgdXNlZCBmb3IgY2FsY3VsYXRpb25zCiAgICBmbG9hdCBub3JtYWxQYXk7CiAgICBmbG9hdCBvdmVydGltZVBheTsKCiAgICBpbnQgaTsKCiAgICBwcmludGYoIlxuXHQqKiogUGF5IENhbGN1bGF0b3IgKioqXG5cbiIpOwoKICAgIC8vIFJlYWQgaG91cnMgYW5kIGNhbGN1bGF0ZSBvdmVydGltZSBhbmQgZ3Jvc3MgcGF5CiAgICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKQogICAgewogICAgICAgIHByaW50ZigiRW50ZXIgaG91cnMgd29ya2VkIGZvciBlbXBsb3llZSAlbGQ6ICIsIGNsb2NrTnVtYmVyW2ldKTsKICAgICAgICBzY2FuZigiJWYiLCAmaG91cnNbaV0pOwoKICAgICAgICBpZiAoaG91cnNbaV0gPiBTVERfSE9VUlMpCiAgICAgICAgewogICAgICAgICAgICBvdmVydGltZUhyc1tpXSA9IGhvdXJzW2ldIC0gU1REX0hPVVJTOwoKICAgICAgICAgICAgbm9ybWFsUGF5ID0gd2FnZVJhdGVbaV0gKiBTVERfSE9VUlM7CgogICAgICAgICAgICBvdmVydGltZVBheSA9IHdhZ2VSYXRlW2ldICogT1RfUkFURSAqIG92ZXJ0aW1lSHJzW2ldOwoKICAgICAgICAgICAgZ3Jvc3NQYXlbaV0gPSBub3JtYWxQYXkgKyBvdmVydGltZVBheTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgb3ZlcnRpbWVIcnNbaV0gPSAwLjA7CgogICAgICAgICAgICBub3JtYWxQYXkgPSB3YWdlUmF0ZVtpXSAqIGhvdXJzW2ldOwoKICAgICAgICAgICAgb3ZlcnRpbWVQYXkgPSAwLjA7CgogICAgICAgICAgICBncm9zc1BheVtpXSA9IG5vcm1hbFBheTsKICAgICAgICB9CiAgICB9CgogICAgLy8gUHJpbnQgcmVwb3J0CiAgICBwcmludGYoIlxuIik7CiAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKICAgIHByaW50ZigiICAgIENsb2NrIyAgIFdhZ2UgIEhvdXJzICAgIE9UICAgICAgIEdyb3NzXG4iKTsKICAgIHByaW50ZigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwoKICAgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyBpKyspCiAgICB7CiAgICAgICAgcHJpbnRmKCIgICAgJTA2bGQgICU1LjJmICAlNS4xZiAgJTYuMWYgICUxMC4yZlxuIiwKICAgICAgICAgICAgICAgY2xvY2tOdW1iZXJbaV0sCiAgICAgICAgICAgICAgIHdhZ2VSYXRlW2ldLAogICAgICAgICAgICAgICBob3Vyc1tpXSwKICAgICAgICAgICAgICAgb3ZlcnRpbWVIcnNbaV0sCiAgICAgICAgICAgICAgIGdyb3NzUGF5W2ldKTsKICAgIH0KCiAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKCiAgICByZXR1cm4gMDsKfQ==