//*******************************************************
//
// Assignment 4 - Arrays
//
// Name: Marin Haxhiaj
//
// Class: C Programming, Spring 2025
//
// Date: 02/20/2025
//
// Description: Program which determines overtime and
// gross pay for a set of employees with outputs sent
// to standard output (the screen).
//
//********************************************************
#include <stdio.h>
#define SIZE 5 // Number of employees to process
#define STD_HOURS 40.0 // Standard work week hours before overtime
#define OT_RATE 1.5 // Overtime pay factor
int main() {
// Declare variables needed for the program
// Recommend an array for clock, wage, hours,
// ... and overtime hours and gross.
// Recommend arrays also for normal pay and overtime pay
// It is OK to pre-fill clock and wage values ... or you can prompt for them
// unique employee identifier
long int clockNumber[SIZE] = {98401, 526488, 765349, 34645, 127615};
float wageRate[SIZE] = {10.6, 9.75, 10.5, 12.25, 8.35}; //hourly pay
float hours[SIZE];
float overtimeHrs[SIZE];
float normalPay[SIZE];
float overtimePay[SIZE];
float grossPay[SIZE];
int i;
float totalHours = 0, totalOvertimeHrs = 0, totalOvertimePay = 0, totalGrossPay = 0;
printf("\n**************************************\n"); printf("* Pay Calculator *\n"); printf("**************************************\n\n"); //Table Header
for (i = 0; i < SIZE; i++) {
}
for (i = 0; i < SIZE; 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;
normalPay[i] = hours[i] * wageRate[i];
overtimePay[i] = 0;
}
grossPay[i] = normalPay[i] + overtimePay[i];
totalHours += hours[i];
totalOvertimeHrs += overtimeHrs[i];
totalOvertimePay += overtimePay[i];
totalGrossPay += grossPay[i];
}
printf("\n%-10s %-10s %-10s %-10s %-10s %-10s\n", "Clock#", "Wage", "Hours", "OT Hours", "OT Pay", "Gross Pay"); printf("-------------------------------------------------------------------------------\n");
for (i = 0; i < SIZE; i++) {
printf("%06ld $%7.2f %7.2f %7.2f $%7.2f $%7.2f\n", clockNumber[i], wageRate[i], hours[i], overtimeHrs[i], overtimePay[i], grossPay[i]);
}
printf("-------------------------------------------------------------------------------\n"); printf("%-10s %-10s %7.2f %7.2f $%7.2f $%7.2f\n", "TOTALS", "", totalHours
, totalOvertimeHrs
, totalOvertimePay
, totalGrossPay
);
return 0;
}
Ly8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vCi8vIEFzc2lnbm1lbnQgNCAtIEFycmF5cwovLwovLyBOYW1lOiBNYXJpbiBIYXhoaWFqCi8vCi8vIENsYXNzOiBDIFByb2dyYW1taW5nLCBTcHJpbmcgMjAyNQovLwovLyBEYXRlOiAwMi8yMC8yMDI1Ci8vCi8vIERlc2NyaXB0aW9uOiBQcm9ncmFtIHdoaWNoIGRldGVybWluZXMgb3ZlcnRpbWUgYW5kIAovLyBncm9zcyBwYXkgZm9yIGEgc2V0IG9mIGVtcGxveWVlcyB3aXRoIG91dHB1dHMgc2VudCAKLy8gdG8gc3RhbmRhcmQgb3V0cHV0ICh0aGUgc2NyZWVuKS4KLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKI2luY2x1ZGUgPHN0ZGlvLmg+CgoKI2RlZmluZSBTSVpFIDUgICAgICAgICAgIC8vIE51bWJlciBvZiBlbXBsb3llZXMgdG8gcHJvY2VzcwojZGVmaW5lIFNURF9IT1VSUyA0MC4wICAgLy8gU3RhbmRhcmQgd29yayB3ZWVrIGhvdXJzIGJlZm9yZSBvdmVydGltZQojZGVmaW5lIE9UX1JBVEUgMS41ICAgICAgLy8gT3ZlcnRpbWUgcGF5IGZhY3RvcgoKaW50IG1haW4oKSB7CgoJLy8gRGVjbGFyZSB2YXJpYWJsZXMgbmVlZGVkIGZvciB0aGUgcHJvZ3JhbQogICAgLy8gUmVjb21tZW5kIGFuIGFycmF5IGZvciBjbG9jaywgd2FnZSwgaG91cnMsCiAgICAvLyAuLi4gYW5kIG92ZXJ0aW1lIGhvdXJzIGFuZCBncm9zcy4KICAgIC8vIFJlY29tbWVuZCBhcnJheXMgYWxzbyBmb3Igbm9ybWFsIHBheSBhbmQgb3ZlcnRpbWUgcGF5ICAgICAgICAgICAgICAgIAogICAgLy8gSXQgaXMgT0sgdG8gcHJlLWZpbGwgY2xvY2sgYW5kIHdhZ2UgdmFsdWVzIC4uLiBvciB5b3UgY2FuIHByb21wdCBmb3IgdGhlbQoKICAgIC8vIHVuaXF1ZSBlbXBsb3llZSBpZGVudGlmaWVyCiAgICBsb25nIGludCBjbG9ja051bWJlcltTSVpFXSA9IHs5ODQwMSwgNTI2NDg4LCA3NjUzNDksIDM0NjQ1LCAxMjc2MTV9OwoKICAgIGZsb2F0IHdhZ2VSYXRlW1NJWkVdID0gezEwLjYsIDkuNzUsIDEwLjUsIDEyLjI1LCA4LjM1fTsgICAgICAgICAgLy9ob3VybHkgcGF5CiAgICBmbG9hdCBob3Vyc1tTSVpFXTsKICAgIGZsb2F0IG92ZXJ0aW1lSHJzW1NJWkVdOwogICAgZmxvYXQgbm9ybWFsUGF5W1NJWkVdOwogICAgZmxvYXQgb3ZlcnRpbWVQYXlbU0laRV07CiAgICBmbG9hdCBncm9zc1BheVtTSVpFXTsKICAgIGludCBpOwoKICAgIGZsb2F0IHRvdGFsSG91cnMgPSAwLCB0b3RhbE92ZXJ0aW1lSHJzID0gMCwgdG90YWxPdmVydGltZVBheSA9IDAsIHRvdGFsR3Jvc3NQYXkgPSAwOwoKICAgIHByaW50ZigiXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIik7CiAgICBwcmludGYoIiogICAgICAgICAgIFBheSBDYWxjdWxhdG9yICAgICAgICAgICAgKlxuIik7CiAgICBwcmludGYoIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiIpOyAgICAgLy9UYWJsZSBIZWFkZXIKCiAgICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKSB7CiAgICAgICAgc2NhbmYoIiVmIiwgJmhvdXJzW2ldKTsKICAgIH0KCiAgICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKSB7CiAgICAgICAgaWYgKGhvdXJzW2ldID4gU1REX0hPVVJTKSB7CiAgICAgICAgICAgIG92ZXJ0aW1lSHJzW2ldID0gaG91cnNbaV0gLSBTVERfSE9VUlM7CiAgICAgICAgICAgIG5vcm1hbFBheVtpXSA9IFNURF9IT1VSUyAqIHdhZ2VSYXRlW2ldOwogICAgICAgICAgICBvdmVydGltZVBheVtpXSA9IG92ZXJ0aW1lSHJzW2ldICogd2FnZVJhdGVbaV0gKiBPVF9SQVRFOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG92ZXJ0aW1lSHJzW2ldID0gMDsKICAgICAgICAgICAgbm9ybWFsUGF5W2ldID0gaG91cnNbaV0gKiB3YWdlUmF0ZVtpXTsKICAgICAgICAgICAgb3ZlcnRpbWVQYXlbaV0gPSAwOwogICAgICAgIH0KICAgICAgICBncm9zc1BheVtpXSA9IG5vcm1hbFBheVtpXSArIG92ZXJ0aW1lUGF5W2ldOwogICAgICAgIAogICAgICAgIHRvdGFsSG91cnMgKz0gaG91cnNbaV07CiAgICAgICAgdG90YWxPdmVydGltZUhycyArPSBvdmVydGltZUhyc1tpXTsKICAgICAgICB0b3RhbE92ZXJ0aW1lUGF5ICs9IG92ZXJ0aW1lUGF5W2ldOwogICAgICAgIHRvdGFsR3Jvc3NQYXkgKz0gZ3Jvc3NQYXlbaV07CiAgICB9CgogICAgcHJpbnRmKCJcbiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iLCAiQ2xvY2sjIiwgIldhZ2UiLCAiSG91cnMiLCAiT1QgSG91cnMiLCAiT1QgUGF5IiwgIkdyb3NzIFBheSIpOwogICAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKICAgIAogICAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkrKykgewogICAgICAgIHByaW50ZigiJTA2bGQgICAkJTcuMmYgICAlNy4yZiAgICU3LjJmICAgJCU3LjJmICAgJCU3LjJmXG4iLAogICAgICAgICAgICAgICBjbG9ja051bWJlcltpXSwgd2FnZVJhdGVbaV0sIGhvdXJzW2ldLCBvdmVydGltZUhyc1tpXSwgb3ZlcnRpbWVQYXlbaV0sIGdyb3NzUGF5W2ldKTsKICAgIH0KICAgIAogICAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKICAgIHByaW50ZigiJS0xMHMgJS0xMHMgJTcuMmYgICAlNy4yZiAgICQlNy4yZiAgICQlNy4yZlxuIiwgIlRPVEFMUyIsICIiLCB0b3RhbEhvdXJzLCB0b3RhbE92ZXJ0aW1lSHJzLCB0b3RhbE92ZXJ0aW1lUGF5LCB0b3RhbEdyb3NzUGF5KTsKCiAgICByZXR1cm4gMDsKfQ==