#include <stdio.h>
// Declare constants
#define STD_HOURS 40.0
#define NUM_EMPLOYEES 5
#define OVERTIME_RATE 1.5
int main( )
{
int clockNumber; // Employee clock number
float grossPay; // The weekly gross pay which is the normalPay + any overtimePay
float hours; // Total hours worked in a week
float normalPay; // Standard weekly normal pay without overtime
float overtimeHrs; // Any hours worked past the normal scheduled work week
float overtimePay; // Additional overtime pay for any overtime hours worked
float wageRate; // Hourly wage for an employee
printf ( "\n *** Pay Calculator ***" ) ;
// Process each employee
for ( int i = 0 ; i < NUM_EMPLOYEES; i++ ) {
// Prompt the user for the clock number
printf ( "\n \n Enter clock number: " ) ; scanf ( "%d" , & clockNumber
) ;
// Prompt the user for the wage rate
printf ( "\n Enter wage rate: " ) ;
// Prompt the user for the number of hours worked
printf ( "\n Enter number of hours worked: " ) ;
// Optional TODO: Remove these two statements if desired
// ... were added just for the template to print some values out of the box
grossPay = 0 ;
overtimeHrs = 0 ;
// Calculate the overtime hours, normal pay, and overtime pay
if ( hours > STD_HOURS) {
overtimeHrs = hours - STD_HOURS;
normalPay = STD_HOURS * wageRate;
overtimePay = overtimeHrs * wageRate * OVERTIME_RATE;
} else {
overtimeHrs = 0 ;
normalPay = hours * wageRate;
overtimePay = 0 ;
}
// Calculate the gross pay with normal pay and any additional overtime pay
grossPay = normalPay + overtimePay;
// Print out information on the current employee
// Optional TODO: Feel free to also print out normalPay and overtimePay
printf ( "\n \n Clock# Wage Hours OT Gross\n " ) ; printf ( "----------------------------------------------\n " ) ; printf ( "%06d %5.2f %5.1f %5.1f %8.2f\n " , clockNumber, wageRate, hours, overtimeHrs, grossPay) ;
}
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyBEZWNsYXJlIGNvbnN0YW50cwojZGVmaW5lIFNURF9IT1VSUyA0MC4wCiNkZWZpbmUgTlVNX0VNUExPWUVFUyA1CiNkZWZpbmUgT1ZFUlRJTUVfUkFURSAxLjUKCmludCBtYWluKCkKewoKICAgIGludCBjbG9ja051bWJlcjsgICAgICAgLy8gRW1wbG95ZWUgY2xvY2sgbnVtYmVyCiAgICBmbG9hdCBncm9zc1BheTsgICAgICAgIC8vIFRoZSB3ZWVrbHkgZ3Jvc3MgcGF5IHdoaWNoIGlzIHRoZSBub3JtYWxQYXkgKyBhbnkgb3ZlcnRpbWVQYXkKICAgIGZsb2F0IGhvdXJzOyAgICAgICAgICAgLy8gVG90YWwgaG91cnMgd29ya2VkIGluIGEgd2VlawogICAgZmxvYXQgbm9ybWFsUGF5OyAgICAgICAvLyBTdGFuZGFyZCB3ZWVrbHkgbm9ybWFsIHBheSB3aXRob3V0IG92ZXJ0aW1lCiAgICBmbG9hdCBvdmVydGltZUhyczsgICAgIC8vIEFueSBob3VycyB3b3JrZWQgcGFzdCB0aGUgbm9ybWFsIHNjaGVkdWxlZCB3b3JrIHdlZWsKICAgIGZsb2F0IG92ZXJ0aW1lUGF5OyAgICAgLy8gQWRkaXRpb25hbCBvdmVydGltZSBwYXkgZm9yIGFueSBvdmVydGltZSBob3VycyB3b3JrZWQKICAgIGZsb2F0IHdhZ2VSYXRlOyAgICAgICAgLy8gSG91cmx5IHdhZ2UgZm9yIGFuIGVtcGxveWVlCgogICAgcHJpbnRmKCJcbioqKiBQYXkgQ2FsY3VsYXRvciAqKioiKTsKCiAgICAvLyBQcm9jZXNzIGVhY2ggZW1wbG95ZWUKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTlVNX0VNUExPWUVFUzsgaSsrKSB7CgogICAgICAgIC8vIFByb21wdCB0aGUgdXNlciBmb3IgdGhlIGNsb2NrIG51bWJlcgogICAgICAgIHByaW50ZigiXG5cbkVudGVyIGNsb2NrIG51bWJlcjogIik7CiAgICAgICAgc2NhbmYoIiVkIiwgJmNsb2NrTnVtYmVyKTsKCiAgICAgICAgLy8gUHJvbXB0IHRoZSB1c2VyIGZvciB0aGUgd2FnZSByYXRlCiAgICAgICAgcHJpbnRmKCJcbkVudGVyIHdhZ2UgcmF0ZTogIik7CiAgICAgICAgc2NhbmYoIiVmIiwgJndhZ2VSYXRlKTsKCiAgICAgICAgLy8gUHJvbXB0IHRoZSB1c2VyIGZvciB0aGUgbnVtYmVyIG9mIGhvdXJzIHdvcmtlZAogICAgICAgIHByaW50ZigiXG5FbnRlciBudW1iZXIgb2YgaG91cnMgd29ya2VkOiAiKTsKICAgICAgICBzY2FuZigiJWYiLCAmaG91cnMpOwoKICAgICAgICAvLyBPcHRpb25hbCBUT0RPOiBSZW1vdmUgdGhlc2UgdHdvIHN0YXRlbWVudHMgaWYgZGVzaXJlZAogICAgICAgIC8vIC4uLiB3ZXJlIGFkZGVkIGp1c3QgZm9yIHRoZSB0ZW1wbGF0ZSB0byBwcmludCBzb21lIHZhbHVlcyBvdXQgb2YgdGhlIGJveAogICAgICAgIGdyb3NzUGF5ID0gMDsKICAgICAgICBvdmVydGltZUhycyA9IDA7CgogICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgb3ZlcnRpbWUgaG91cnMsIG5vcm1hbCBwYXksIGFuZCBvdmVydGltZSBwYXkKICAgICAgICBpZiAoaG91cnMgPiBTVERfSE9VUlMpIHsKICAgICAgICAgICAgb3ZlcnRpbWVIcnMgPSBob3VycyAtIFNURF9IT1VSUzsKICAgICAgICAgICAgbm9ybWFsUGF5ID0gU1REX0hPVVJTICogd2FnZVJhdGU7CiAgICAgICAgICAgIG92ZXJ0aW1lUGF5ID0gb3ZlcnRpbWVIcnMgKiB3YWdlUmF0ZSAqIE9WRVJUSU1FX1JBVEU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgb3ZlcnRpbWVIcnMgPSAwOwogICAgICAgICAgICBub3JtYWxQYXkgPSBob3VycyAqIHdhZ2VSYXRlOwogICAgICAgICAgICBvdmVydGltZVBheSA9IDA7CiAgICAgICAgfQoKICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIGdyb3NzIHBheSB3aXRoIG5vcm1hbCBwYXkgYW5kIGFueSBhZGRpdGlvbmFsIG92ZXJ0aW1lIHBheQogICAgICAgIGdyb3NzUGF5ID0gbm9ybWFsUGF5ICsgb3ZlcnRpbWVQYXk7CgogICAgICAgIC8vIFByaW50IG91dCBpbmZvcm1hdGlvbiBvbiB0aGUgY3VycmVudCBlbXBsb3llZQogICAgICAgIC8vIE9wdGlvbmFsIFRPRE86IEZlZWwgZnJlZSB0byBhbHNvIHByaW50IG91dCBub3JtYWxQYXkgYW5kIG92ZXJ0aW1lUGF5CiAgICAgICAgcHJpbnRmKCJcblxuQ2xvY2sjIFdhZ2UgIEhvdXJzICBPVCAgICAgIEdyb3NzXG4iKTsKICAgICAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwogICAgICAgIHByaW50ZigiJTA2ZCAlNS4yZiAlNS4xZiAlNS4xZiAlOC4yZlxuIiwKICAgICAgICAgICAgICAgY2xvY2tOdW1iZXIsIHdhZ2VSYXRlLCBob3Vycywgb3ZlcnRpbWVIcnMsIGdyb3NzUGF5KTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==