/******************************************************
*
* Assignment 4 - Arrays
*
* Name: Robert Hyde
*
* Class: C Programming, Fall 2026
*
* Date: September 28, 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 */
#define OT_RATE 1.5 /* time and a half overtime setting */
int main( )
{
/* Declare variables needed for the program */
/* Unique employee identifier */
long int clockNumber[ SIZE] = { 98401 , 526488 , 765349 , 34645 , 127615 } ;
/* Hourly pay for each employee */
float wageRate[ SIZE] = { 10.6 , 9.75 , 10.5 , 12.25 , 8.35 } ;
/* Arrays for employee information and calculations */
float hours[ SIZE] ;
float overtimeHrs[ SIZE] ;
float normalPay[ SIZE] ;
float overtimePay[ SIZE] ;
float grossPay[ SIZE] ;
int i;
printf ( "\n *** Pay Calculator ***\n \n " ) ;
/* Process each employee one at a time */
for ( i = 0 ; i < SIZE; i++ )
{
/* Prompt for and read hours worked */
printf ( "Enter hours worked for employee %ld: " , clockNumber
[ i
] ) ;
/* Calculate overtime and gross 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.0 ;
normalPay[ i] = hours[ i] * wageRate[ i] ;
overtimePay[ i] = 0.0 ;
}
/* Calculate gross pay */
grossPay[ i] = normalPay[ i] + overtimePay[ i] ;
}
/* Print table header */
printf ( "\n --------------------------------------------------------------------------\n " ) ; printf ( " Clock# Wage Hours OT Gross\n " ) ; printf ( "--------------------------------------------------------------------------\n " ) ;
/* Print employee information */
for ( i = 0 ; i < SIZE; i++ )
{
printf ( " %06ld %5.2f %5.1f %5.1f %8.2f\n " , clockNumber[ i] ,
wageRate[ i] ,
hours[ i] ,
overtimeHrs[ i] ,
grossPay[ i] ) ;
}
printf ( "--------------------------------------------------------------------------\n " ) ;
return 0 ;
}
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgogKiBBc3NpZ25tZW50IDQgLSBBcnJheXMKICoKICogTmFtZTogUm9iZXJ0IEh5ZGUKICoKICogQ2xhc3M6IEMgUHJvZ3JhbW1pbmcsIEZhbGwgMjAyNgogKgogKiBEYXRlOiBTZXB0ZW1iZXIgMjgsIDIwMjYKICoKICogRGVzY3JpcHRpb246IFByb2dyYW0gd2hpY2ggZGV0ZXJtaW5lcyBvdmVydGltZSBhbmQKICogZ3Jvc3MgcGF5IGZvciBhIHNldCBvZiBlbXBsb3llZXMgd2l0aCBvdXRwdXRzIHNlbnQKICogdG8gc3RhbmRhcmQgb3V0cHV0ICh0aGUgc2NyZWVuKS4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNpbmNsdWRlIDxzdGRpby5oPgoKLyogQ29uc3RhbnRzIHRvIHVzZSAqLwojZGVmaW5lIFNJWkUgNSAgICAgICAgICAvKiBudW1iZXIgb2YgZW1wbG95ZWVzIHRvIHByb2Nlc3MgKi8KI2RlZmluZSBTVERfSE9VUlMgNDAuMCAgLyogbm9ybWFsIHdvcmsgd2VlayBob3VycyAqLwojZGVmaW5lIE9UX1JBVEUgMS41ICAgICAvKiB0aW1lIGFuZCBhIGhhbGYgb3ZlcnRpbWUgc2V0dGluZyAqLwoKaW50IG1haW4oKQp7CiAgICAvKiBEZWNsYXJlIHZhcmlhYmxlcyBuZWVkZWQgZm9yIHRoZSBwcm9ncmFtICovCgogICAgLyogVW5pcXVlIGVtcGxveWVlIGlkZW50aWZpZXIgKi8KICAgIGxvbmcgaW50IGNsb2NrTnVtYmVyW1NJWkVdID0gezk4NDAxLCA1MjY0ODgsIDc2NTM0OSwgMzQ2NDUsIDEyNzYxNX07CgogICAgLyogSG91cmx5IHBheSBmb3IgZWFjaCBlbXBsb3llZSAqLwogICAgZmxvYXQgd2FnZVJhdGVbU0laRV0gPSB7MTAuNiwgOS43NSwgMTAuNSwgMTIuMjUsIDguMzV9OwoKICAgIC8qIEFycmF5cyBmb3IgZW1wbG95ZWUgaW5mb3JtYXRpb24gYW5kIGNhbGN1bGF0aW9ucyAqLwogICAgZmxvYXQgaG91cnNbU0laRV07CiAgICBmbG9hdCBvdmVydGltZUhyc1tTSVpFXTsKICAgIGZsb2F0IG5vcm1hbFBheVtTSVpFXTsKICAgIGZsb2F0IG92ZXJ0aW1lUGF5W1NJWkVdOwogICAgZmxvYXQgZ3Jvc3NQYXlbU0laRV07CgogICAgaW50IGk7CgogICAgcHJpbnRmKCJcbioqKiBQYXkgQ2FsY3VsYXRvciAqKipcblxuIik7CgogICAgLyogUHJvY2VzcyBlYWNoIGVtcGxveWVlIG9uZSBhdCBhIHRpbWUgKi8KICAgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyBpKyspCiAgICB7CiAgICAgICAgLyogUHJvbXB0IGZvciBhbmQgcmVhZCBob3VycyB3b3JrZWQgKi8KICAgICAgICBwcmludGYoIkVudGVyIGhvdXJzIHdvcmtlZCBmb3IgZW1wbG95ZWUgJWxkOiAiLCBjbG9ja051bWJlcltpXSk7CiAgICAgICAgc2NhbmYoIiVmIiwgJmhvdXJzW2ldKTsKCiAgICAgICAgLyogQ2FsY3VsYXRlIG92ZXJ0aW1lIGFuZCBncm9zcyBwYXkgKi8KICAgICAgICBpZiAoaG91cnNbaV0gPiBTVERfSE9VUlMpCiAgICAgICAgewogICAgICAgICAgICBvdmVydGltZUhyc1tpXSA9IGhvdXJzW2ldIC0gU1REX0hPVVJTOwoKICAgICAgICAgICAgbm9ybWFsUGF5W2ldID0gU1REX0hPVVJTICogd2FnZVJhdGVbaV07CgogICAgICAgICAgICBvdmVydGltZVBheVtpXSA9IG92ZXJ0aW1lSHJzW2ldICogd2FnZVJhdGVbaV0gKiBPVF9SQVRFOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBvdmVydGltZUhyc1tpXSA9IDAuMDsKCiAgICAgICAgICAgIG5vcm1hbFBheVtpXSA9IGhvdXJzW2ldICogd2FnZVJhdGVbaV07CgogICAgICAgICAgICBvdmVydGltZVBheVtpXSA9IDAuMDsKICAgICAgICB9CgogICAgICAgIC8qIENhbGN1bGF0ZSBncm9zcyBwYXkgKi8KICAgICAgICBncm9zc1BheVtpXSA9IG5vcm1hbFBheVtpXSArIG92ZXJ0aW1lUGF5W2ldOwogICAgfQoKICAgIC8qIFByaW50IHRhYmxlIGhlYWRlciAqLwogICAgcHJpbnRmKCJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKICAgIHByaW50ZigiICAgIENsb2NrIyAgIFdhZ2UgIEhvdXJzICAgIE9UICAgICAgIEdyb3NzXG4iKTsKICAgIHByaW50ZigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwoKICAgIC8qIFByaW50IGVtcGxveWVlIGluZm9ybWF0aW9uICovCiAgICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKQogICAgewogICAgICAgIHByaW50ZigiICAgICUwNmxkICAlNS4yZiAgJTUuMWYgICAlNS4xZiAgICAlOC4yZlxuIiwKICAgICAgICAgICAgICAgY2xvY2tOdW1iZXJbaV0sCiAgICAgICAgICAgICAgIHdhZ2VSYXRlW2ldLAogICAgICAgICAgICAgICBob3Vyc1tpXSwKICAgICAgICAgICAgICAgb3ZlcnRpbWVIcnNbaV0sCiAgICAgICAgICAgICAgIGdyb3NzUGF5W2ldKTsKICAgIH0KCiAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKCiAgICByZXR1cm4gMDsKfQ==