#include <stdio.h>
// constants to use
#define SIZE 5
#define STD_HOURS 40.0
#define OT_RATE 1.5
int main()
{
long int clockNumber[SIZE] = {98401, 526488, 765349, 34645, 127615};
float grossPay[SIZE];
float hours[SIZE];
int i;
float normalPay[SIZE];
float overtimeHrs[SIZE];
float overtimePay[SIZE];
float wageRate[SIZE] = {10.6, 9.75, 10.5, 12.25, 8.35};
float totalWage = 0, totalHours = 0, totalOT = 0, totalGross = 0;
printf("\n*** Pay Calculator ***\n\n");
for (i = 0; i < SIZE; i++)
{
printf("Enter hours for %06ld: ", clockNumber
[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];
totalWage += wageRate[i];
totalHours += hours[i];
totalOT += overtimeHrs[i];
totalGross += grossPay[i];
}
// Table header
printf("\n%-8s %12s %10s %10s %14s\n", "Clock#", "Wage", "Hours", "OT", "Gross");
printf("---------------------------------------------------------------------\n");
for (i = 0; i < SIZE; i++)
{
printf("%-8ld $%10.2f %10.2f %10.2f $%12.2f\n", clockNumber[i],
wageRate[i],
hours[i],
overtimeHrs[i],
grossPay[i]);
}
printf("---------------------------------------------------------------------\n");
printf("%-8s $%10.2f %10.2f %10.2f $%12.2f\n", "Total",
totalWage, totalHours, totalOT, totalGross);
printf("%-8s $%10.2f %10.2f %10.2f $%12.2f\n", "Average",
totalWage / SIZE,
totalHours / SIZE,
totalOT / SIZE,
totalGross / SIZE);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyBjb25zdGFudHMgdG8gdXNlCiNkZWZpbmUgU0laRSA1CiNkZWZpbmUgU1REX0hPVVJTIDQwLjAKI2RlZmluZSBPVF9SQVRFIDEuNQoKaW50IG1haW4oKQp7CiAgICBsb25nIGludCBjbG9ja051bWJlcltTSVpFXSA9IHs5ODQwMSwgNTI2NDg4LCA3NjUzNDksIDM0NjQ1LCAxMjc2MTV9OwoKICAgIGZsb2F0IGdyb3NzUGF5W1NJWkVdOwogICAgZmxvYXQgaG91cnNbU0laRV07CiAgICBpbnQgaTsKICAgIGZsb2F0IG5vcm1hbFBheVtTSVpFXTsKICAgIGZsb2F0IG92ZXJ0aW1lSHJzW1NJWkVdOwogICAgZmxvYXQgb3ZlcnRpbWVQYXlbU0laRV07CgogICAgZmxvYXQgd2FnZVJhdGVbU0laRV0gPSB7MTAuNiwgOS43NSwgMTAuNSwgMTIuMjUsIDguMzV9OwoKICAgIGZsb2F0IHRvdGFsV2FnZSA9IDAsIHRvdGFsSG91cnMgPSAwLCB0b3RhbE9UID0gMCwgdG90YWxHcm9zcyA9IDA7CgogICAgcHJpbnRmKCJcbioqKiBQYXkgQ2FsY3VsYXRvciAqKipcblxuIik7CgogICAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkrKykKICAgIHsKICAgICAgICBwcmludGYoIkVudGVyIGhvdXJzIGZvciAlMDZsZDogIiwgY2xvY2tOdW1iZXJbaV0pOwogICAgICAgIHNjYW5mKCIlZiIsICZob3Vyc1tpXSk7CgogICAgICAgIGlmIChob3Vyc1tpXSA+PSBTVERfSE9VUlMpCiAgICAgICAgewogICAgICAgICAgICBvdmVydGltZUhyc1tpXSA9IGhvdXJzW2ldIC0gU1REX0hPVVJTOwogICAgICAgICAgICBub3JtYWxQYXlbaV0gPSBTVERfSE9VUlMgKiB3YWdlUmF0ZVtpXTsKICAgICAgICAgICAgb3ZlcnRpbWVQYXlbaV0gPSBvdmVydGltZUhyc1tpXSAqIHdhZ2VSYXRlW2ldICogT1RfUkFURTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgb3ZlcnRpbWVIcnNbaV0gPSAwOwogICAgICAgICAgICBub3JtYWxQYXlbaV0gPSBob3Vyc1tpXSAqIHdhZ2VSYXRlW2ldOwogICAgICAgICAgICBvdmVydGltZVBheVtpXSA9IDA7CiAgICAgICAgfQoKICAgICAgICBncm9zc1BheVtpXSA9IG5vcm1hbFBheVtpXSArIG92ZXJ0aW1lUGF5W2ldOwoKICAgICAgICB0b3RhbFdhZ2UgKz0gd2FnZVJhdGVbaV07CiAgICAgICAgdG90YWxIb3VycyArPSBob3Vyc1tpXTsKICAgICAgICB0b3RhbE9UICs9IG92ZXJ0aW1lSHJzW2ldOwogICAgICAgIHRvdGFsR3Jvc3MgKz0gZ3Jvc3NQYXlbaV07CiAgICB9CgogICAgLy8gVGFibGUgaGVhZGVyCiAgICBwcmludGYoIlxuJS04cyAlMTJzICUxMHMgJTEwcyAlMTRzXG4iLAogICAgICAgICAgICJDbG9jayMiLCAiV2FnZSIsICJIb3VycyIsICJPVCIsICJHcm9zcyIpOwogICAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwoKICAgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyBpKyspCiAgICB7CiAgICAgICAgcHJpbnRmKCIlLThsZCAkJTEwLjJmICUxMC4yZiAlMTAuMmYgJCUxMi4yZlxuIiwKICAgICAgICAgICAgICAgY2xvY2tOdW1iZXJbaV0sCiAgICAgICAgICAgICAgIHdhZ2VSYXRlW2ldLAogICAgICAgICAgICAgICBob3Vyc1tpXSwKICAgICAgICAgICAgICAgb3ZlcnRpbWVIcnNbaV0sCiAgICAgICAgICAgICAgIGdyb3NzUGF5W2ldKTsKICAgIH0KCiAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CgogICAgcHJpbnRmKCIlLThzICQlMTAuMmYgJTEwLjJmICUxMC4yZiAkJTEyLjJmXG4iLAogICAgICAgICAgICJUb3RhbCIsCiAgICAgICAgICAgdG90YWxXYWdlLCB0b3RhbEhvdXJzLCB0b3RhbE9ULCB0b3RhbEdyb3NzKTsKCiAgICBwcmludGYoIiUtOHMgJCUxMC4yZiAlMTAuMmYgJTEwLjJmICQlMTIuMmZcbiIsCiAgICAgICAgICAgIkF2ZXJhZ2UiLAogICAgICAgICAgIHRvdGFsV2FnZSAvIFNJWkUsCiAgICAgICAgICAgdG90YWxIb3VycyAvIFNJWkUsCiAgICAgICAgICAgdG90YWxPVCAvIFNJWkUsCiAgICAgICAgICAgdG90YWxHcm9zcyAvIFNJWkUpOwoKICAgIHJldHVybiAwOwp9