//*******************************************************
//
// Assignment 4 - Arrays
//
// Name: <replace with your name>
//
// Class: C Programming, <replace with Semester and Year>
//
// Date: <replace with the current date>
//
// 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 constants */
#define SIZE 5 // Number of employees
#define STD_HOURS 40.0 // Standard hours before overtime
#define OT_RATE 1.5 // Overtime pay multiplier
int main( ) {
/* Employee Data */
long int clockNumber[ SIZE] = { 98401 , 526488 , 765349 , 34645 , 127615 } ;
float wageRate[ SIZE] = { 10.6 , 9.75 , 10.5 , 12.25 , 8.35 } ;
/* Input and Output Data */
float hoursWorked[ SIZE] ; // To be entered by user
float overtimeHours[ SIZE] ; // To be calculated
float grossPay[ SIZE] ; // To be calculated
int i; // loop index
printf ( "*** Pay Calculator ***\n \n " ) ;
// Input Loop
for ( i = 0 ; i < SIZE; i++ ) {
printf ( "Enter hours worked for employee #%06ld: " , clockNumber
[ i
] ) ; scanf ( "%f" , & hoursWorked
[ i
] ) ;
// Calculate overtime hours
if ( hoursWorked[ i] > STD_HOURS) {
overtimeHours[ i] = hoursWorked[ i] - STD_HOURS;
} else {
overtimeHours[ i] = 0.0 ;
}
// Calculate gross pay
float normalPay = ( hoursWorked[ i] > STD_HOURS ? STD_HOURS : hoursWorked[ i] ) * wageRate[ i] ;
float overtimePay = overtimeHours[ i] * wageRate[ i] * OT_RATE;
grossPay[ i] = normalPay + overtimePay;
}
// Output
printf ( "\n --------------------------------------------------------------------------\n " ) ; printf ( " Clock# Wage Hours OT Gross\n " ) ; printf ( "--------------------------------------------------------------------------\n " ) ;
for ( i = 0 ; i < SIZE; i++ ) {
printf ( " %06ld %5.2f %5.1f %6.1f %8.2f\n " , clockNumber[ i] ,
wageRate[ i] ,
hoursWorked[ i] ,
overtimeHours[ i] ,
grossPay[ i] ) ;
}
return 0 ;
}
Ly8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vCi8vIEFzc2lnbm1lbnQgNCAtIEFycmF5cwovLwovLyBOYW1lOiA8cmVwbGFjZSB3aXRoIHlvdXIgbmFtZT4KLy8KLy8gQ2xhc3M6IEMgUHJvZ3JhbW1pbmcsIDxyZXBsYWNlIHdpdGggU2VtZXN0ZXIgYW5kIFllYXI+Ci8vCi8vIERhdGU6IDxyZXBsYWNlIHdpdGggdGhlIGN1cnJlbnQgZGF0ZT4KLy8KLy8gRGVzY3JpcHRpb246IFByb2dyYW0gd2hpY2ggZGV0ZXJtaW5lcyBvdmVydGltZSBhbmQgCi8vIGdyb3NzIHBheSBmb3IgYSBzZXQgb2YgZW1wbG95ZWVzIHdpdGggb3V0cHV0cyBzZW50IAovLyB0byBzdGFuZGFyZCBvdXRwdXQgKHRoZSBzY3JlZW4pLgovLwovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgojaW5jbHVkZSA8c3RkaW8uaD4KCi8qIERlZmluZSBjb25zdGFudHMgKi8KI2RlZmluZSBTSVpFIDUgICAgICAgICAgICAgLy8gTnVtYmVyIG9mIGVtcGxveWVlcwojZGVmaW5lIFNURF9IT1VSUyA0MC4wICAgICAvLyBTdGFuZGFyZCBob3VycyBiZWZvcmUgb3ZlcnRpbWUKI2RlZmluZSBPVF9SQVRFIDEuNSAgICAgICAgLy8gT3ZlcnRpbWUgcGF5IG11bHRpcGxpZXIKCmludCBtYWluKCkgewogICAgLyogRW1wbG95ZWUgRGF0YSAqLwogICAgbG9uZyBpbnQgY2xvY2tOdW1iZXJbU0laRV0gPSB7OTg0MDEsIDUyNjQ4OCwgNzY1MzQ5LCAzNDY0NSwgMTI3NjE1fTsKICAgIGZsb2F0IHdhZ2VSYXRlW1NJWkVdID0gezEwLjYsIDkuNzUsIDEwLjUsIDEyLjI1LCA4LjM1fTsKCiAgICAvKiBJbnB1dCBhbmQgT3V0cHV0IERhdGEgKi8KICAgIGZsb2F0IGhvdXJzV29ya2VkW1NJWkVdOyAgICAgIC8vIFRvIGJlIGVudGVyZWQgYnkgdXNlcgogICAgZmxvYXQgb3ZlcnRpbWVIb3Vyc1tTSVpFXTsgICAgLy8gVG8gYmUgY2FsY3VsYXRlZAogICAgZmxvYXQgZ3Jvc3NQYXlbU0laRV07ICAgICAgICAgLy8gVG8gYmUgY2FsY3VsYXRlZAoKICAgIGludCBpOyAvLyBsb29wIGluZGV4CgogICAgcHJpbnRmKCIqKiogUGF5IENhbGN1bGF0b3IgKioqXG5cbiIpOwoKICAgIC8vIElucHV0IExvb3AKICAgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyBpKyspIHsKICAgICAgICBwcmludGYoIkVudGVyIGhvdXJzIHdvcmtlZCBmb3IgZW1wbG95ZWUgIyUwNmxkOiAiLCBjbG9ja051bWJlcltpXSk7CiAgICAgICAgc2NhbmYoIiVmIiwgJmhvdXJzV29ya2VkW2ldKTsKCiAgICAgICAgLy8gQ2FsY3VsYXRlIG92ZXJ0aW1lIGhvdXJzCiAgICAgICAgaWYgKGhvdXJzV29ya2VkW2ldID4gU1REX0hPVVJTKSB7CiAgICAgICAgICAgIG92ZXJ0aW1lSG91cnNbaV0gPSBob3Vyc1dvcmtlZFtpXSAtIFNURF9IT1VSUzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBvdmVydGltZUhvdXJzW2ldID0gMC4wOwogICAgICAgIH0KCiAgICAgICAgLy8gQ2FsY3VsYXRlIGdyb3NzIHBheQogICAgICAgIGZsb2F0IG5vcm1hbFBheSA9IChob3Vyc1dvcmtlZFtpXSA+IFNURF9IT1VSUyA/IFNURF9IT1VSUyA6IGhvdXJzV29ya2VkW2ldKSAqIHdhZ2VSYXRlW2ldOwogICAgICAgIGZsb2F0IG92ZXJ0aW1lUGF5ID0gb3ZlcnRpbWVIb3Vyc1tpXSAqIHdhZ2VSYXRlW2ldICogT1RfUkFURTsKICAgICAgICBncm9zc1BheVtpXSA9IG5vcm1hbFBheSArIG92ZXJ0aW1lUGF5OwogICAgfQoKICAgIC8vIE91dHB1dAogICAgcHJpbnRmKCJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKICAgIHByaW50ZigiICBDbG9jayMgICBXYWdlICBIb3VycyAgICBPVCAgICAgICBHcm9zc1xuIik7CiAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKCiAgICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCIgJTA2bGQgICAlNS4yZiAgJTUuMWYgICU2LjFmICAgJTguMmZcbiIsCiAgICAgICAgICAgICAgIGNsb2NrTnVtYmVyW2ldLAogICAgICAgICAgICAgICB3YWdlUmF0ZVtpXSwKICAgICAgICAgICAgICAgaG91cnNXb3JrZWRbaV0sCiAgICAgICAgICAgICAgIG92ZXJ0aW1lSG91cnNbaV0sCiAgICAgICAgICAgICAgIGdyb3NzUGF5W2ldKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==