#include <stdio.h>
#include <stdlib.h>
//Always use MACROS to define constants.
#define MAX_EMPLOYEE 5
#define MAX_NAME_LEN 50
//You can name function parameters same as local vairables because they have different scopes so they wont collide.
void Prompt(char** name, float* rate, float* hours)
{
for (int i = 0, j = 0; i < MAX_EMPLOYEE; i++, j++)
{
scanf("%s", name
+ (i
+ j
));
printf("Enter hourly rate: "); if (rate[i] == -1)
{
break;
}
printf("Enter hours worked: "); if (hours[i] == -1)
{
break;
}
}
//return; No need to return here.
}
void GrossPay(float* grosspay, float* basepay, float* overtimepay, float* rate, float* hours)
{
for (int i = 0; i < MAX_EMPLOYEE; i++)
{
if (hours[i] > 40)
{
overtimepay[i] = (hours[i] - 40) * (rate[i]) * 1.5;
basepay[i] = rate[i] * hours[i];
grosspay[i] = rate[i] * hours[i] + (hours[i] - 40) * (rate[i]) * 1.5;
}
else
{
overtimepay[i] = 0;
basepay[i] = rate[i] * (hours[i]);
grosspay[i] = basepay[i];
}
}
//return; No need to return from void function.
}
//When passing array as arguments use arr* instead of arr[]
void* Taxes(float* taxes_owed, float* gross_pay)
{
for (int i = 0; i < MAX_EMPLOYEE; i++)
{
taxes_owed[i] = 0.2 * gross_pay[i];
}
//return taxes_owed; //you cannot return 5 tax values either return single value or whole array containing those values.
}
float CalculateTotal(float* gross_pay)
{
float total_pay = 0.0f;//0.0f for floats only.
for (int i = 0; i < MAX_EMPLOYEE; i++)
{
total_pay += gross_pay[i];
}
return total_pay;
}
void PrintOutput(char** first_name, float* rate, float* hours, float* gross_pay, float* base_pay, float* overtime_pay, float* taxes_owed, float* net_pay, float total_pay)
{
for (int i = 0, j = 0; i < MAX_EMPLOYEE; i++, j++)
{
printf("\nPay to: %s\n", first_name
+ (i
+ j
)); printf("Hours worked: %5.1f\n", hours
[i
]); printf("Hourly rate: $%5.2f\n", rate
[i
]); printf("Gross pay: $%5.2f \n", gross_pay
[i
]); printf("Base pay: $%5.2f \n", base_pay
[i
]); printf("Overtime pay: $%5.2f\n", overtime_pay
[i
]); printf("Taxes paid: $%5.2f\n", taxes_owed
[i
]); printf("Net pay: $%5.2f\n\n", net_pay
[i
]); }
printf("Total paid to all employees= $%5.2f\n", total_pay
); }
int main()
{
char first_name[MAX_EMPLOYEE][MAX_NAME_LEN] = { NULL };
float rate[MAX_EMPLOYEE] = { 0.0f };
float hours[MAX_EMPLOYEE] = { 0.0f };
float gross_pay[MAX_EMPLOYEE] = { 0.0f };
float base_pay[MAX_EMPLOYEE] = { 0.0f };
float overtime_pay[MAX_EMPLOYEE] = { 0.0f };
float taxes_owed[MAX_EMPLOYEE] = { 0.0f };
float net_pay[MAX_EMPLOYEE] = { 0.0f };
float total_pay = 0.0f;
Prompt(first_name, rate, hours);
GrossPay(gross_pay, base_pay, overtime_pay, rate, hours);
Taxes(taxes_owed, gross_pay);
total_pay = CalculateTotal(gross_pay);
for (int i = 0; i < MAX_EMPLOYEE; i++)
net_pay[i] = gross_pay[i] - taxes_owed[i];
PrintOutput(first_name, rate, hours, gross_pay, base_pay, overtime_pay, taxes_owed, net_pay, total_pay);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KLy9BbHdheXMgdXNlIE1BQ1JPUyB0byBkZWZpbmUgY29uc3RhbnRzLgojZGVmaW5lIE1BWF9FTVBMT1lFRSA1CiNkZWZpbmUgTUFYX05BTUVfTEVOIDUwCgovL1lvdSBjYW4gbmFtZSBmdW5jdGlvbiBwYXJhbWV0ZXJzIHNhbWUgYXMgbG9jYWwgdmFpcmFibGVzIGJlY2F1c2UgdGhleSBoYXZlIGRpZmZlcmVudCBzY29wZXMgc28gdGhleSB3b250IGNvbGxpZGUuCnZvaWQgUHJvbXB0KGNoYXIqKiBuYW1lLCBmbG9hdCogcmF0ZSwgZmxvYXQqIGhvdXJzKQp7Cglmb3IgKGludCBpID0gMCwgaiA9IDA7IGkgPCBNQVhfRU1QTE9ZRUU7IGkrKywgaisrKQoJewoJCXByaW50ZigiRW50ZXIgbmFtZTogIik7CgkJc2NhbmYoIiVzIiwgbmFtZSArIChpICsgaikpOwoKCQlwcmludGYoIkVudGVyIGhvdXJseSByYXRlOiAiKTsKCQlzY2FuZigiJWYiLCByYXRlICsgaSk7CgkJaWYgKHJhdGVbaV0gPT0gLTEpCgkJewoJCQlicmVhazsKCQl9CgoJCXByaW50ZigiRW50ZXIgaG91cnMgd29ya2VkOiAiKTsKCQlzY2FuZigiJWYiLCBob3VycyArIGkpOwoJCWlmIChob3Vyc1tpXSA9PSAtMSkKCQl7CgkJCWJyZWFrOwoJCX0KCX0KCS8vcmV0dXJuOyBObyBuZWVkIHRvIHJldHVybiBoZXJlLgp9Cgp2b2lkIEdyb3NzUGF5KGZsb2F0KiBncm9zc3BheSwgZmxvYXQqIGJhc2VwYXksIGZsb2F0KiBvdmVydGltZXBheSwgZmxvYXQqIHJhdGUsIGZsb2F0KiBob3VycykKewoJZm9yIChpbnQgaSA9IDA7IGkgPCBNQVhfRU1QTE9ZRUU7IGkrKykKCXsKCQlpZiAoaG91cnNbaV0gPiA0MCkKCQl7CgkJCW92ZXJ0aW1lcGF5W2ldID0gKGhvdXJzW2ldIC0gNDApICogKHJhdGVbaV0pICogMS41OwoJCQliYXNlcGF5W2ldID0gcmF0ZVtpXSAqIGhvdXJzW2ldOwoJCQlncm9zc3BheVtpXSA9IHJhdGVbaV0gKiBob3Vyc1tpXSArIChob3Vyc1tpXSAtIDQwKSAqIChyYXRlW2ldKSAqIDEuNTsKCgkJfQoKCQllbHNlCgkJewoJCQlvdmVydGltZXBheVtpXSA9IDA7CgkJCWJhc2VwYXlbaV0gPSByYXRlW2ldICogKGhvdXJzW2ldKTsKCQkJZ3Jvc3NwYXlbaV0gPSBiYXNlcGF5W2ldOwoKCQl9Cgl9CgoJLy9yZXR1cm47IE5vIG5lZWQgdG8gcmV0dXJuIGZyb20gdm9pZCBmdW5jdGlvbi4KfQoKLy9XaGVuIHBhc3NpbmcgYXJyYXkgYXMgYXJndW1lbnRzIHVzZSBhcnIqIGluc3RlYWQgb2YgYXJyW10Kdm9pZCogVGF4ZXMoZmxvYXQqIHRheGVzX293ZWQsIGZsb2F0KiBncm9zc19wYXkpCnsKCWZvciAoaW50IGkgPSAwOyBpIDwgTUFYX0VNUExPWUVFOyBpKyspCgl7CgkJdGF4ZXNfb3dlZFtpXSA9IDAuMiAqIGdyb3NzX3BheVtpXTsKCX0KCS8vcmV0dXJuIHRheGVzX293ZWQ7IC8veW91IGNhbm5vdCByZXR1cm4gNSB0YXggdmFsdWVzIGVpdGhlciByZXR1cm4gc2luZ2xlIHZhbHVlIG9yIHdob2xlIGFycmF5IGNvbnRhaW5pbmcgdGhvc2UgdmFsdWVzLgp9CgpmbG9hdCBDYWxjdWxhdGVUb3RhbChmbG9hdCogZ3Jvc3NfcGF5KQp7CglmbG9hdCB0b3RhbF9wYXkgPSAwLjBmOy8vMC4wZiBmb3IgZmxvYXRzIG9ubHkuCgoJZm9yIChpbnQgaSA9IDA7IGkgPCBNQVhfRU1QTE9ZRUU7IGkrKykKCXsKCQl0b3RhbF9wYXkgKz0gZ3Jvc3NfcGF5W2ldOwoJfQoKCXJldHVybiB0b3RhbF9wYXk7Cn0KCnZvaWQgUHJpbnRPdXRwdXQoY2hhcioqIGZpcnN0X25hbWUsIGZsb2F0KiByYXRlLCBmbG9hdCogaG91cnMsIGZsb2F0KiBncm9zc19wYXksIGZsb2F0KiBiYXNlX3BheSwgZmxvYXQqIG92ZXJ0aW1lX3BheSwgZmxvYXQqIHRheGVzX293ZWQsIGZsb2F0KiBuZXRfcGF5LCBmbG9hdCB0b3RhbF9wYXkpCnsKCWZvciAoaW50IGkgPSAwLCBqID0gMDsgaSA8IE1BWF9FTVBMT1lFRTsgaSsrLCBqKyspCgl7CgkJcHJpbnRmKCJcblBheSB0bzogJXNcbiIsIGZpcnN0X25hbWUgKyAoaSArIGopKTsKCQlwcmludGYoIkhvdXJzIHdvcmtlZDogJTUuMWZcbiIsIGhvdXJzW2ldKTsKCQlwcmludGYoIkhvdXJseSByYXRlOiAkJTUuMmZcbiIsIHJhdGVbaV0pOwoJCXByaW50ZigiR3Jvc3MgcGF5OiAkJTUuMmYgXG4iLCBncm9zc19wYXlbaV0pOwoJCXByaW50ZigiQmFzZSBwYXk6ICQlNS4yZiBcbiIsIGJhc2VfcGF5W2ldKTsKCQlwcmludGYoIk92ZXJ0aW1lIHBheTogJCU1LjJmXG4iLCBvdmVydGltZV9wYXlbaV0pOwoJCXByaW50ZigiVGF4ZXMgcGFpZDogJCU1LjJmXG4iLCB0YXhlc19vd2VkW2ldKTsKCQlwcmludGYoIk5ldCBwYXk6ICQlNS4yZlxuXG4iLCBuZXRfcGF5W2ldKTsKCX0KCXByaW50ZigiVG90YWwgcGFpZCB0byBhbGwgZW1wbG95ZWVzPSAkJTUuMmZcbiIsIHRvdGFsX3BheSk7Cn0KCmludCBtYWluKCkKewoJY2hhciBmaXJzdF9uYW1lW01BWF9FTVBMT1lFRV1bTUFYX05BTUVfTEVOXSA9IHsgTlVMTCB9OwoJZmxvYXQgcmF0ZVtNQVhfRU1QTE9ZRUVdID0geyAwLjBmIH07CglmbG9hdCBob3Vyc1tNQVhfRU1QTE9ZRUVdID0geyAwLjBmIH07CglmbG9hdCBncm9zc19wYXlbTUFYX0VNUExPWUVFXSA9IHsgMC4wZiB9OwoJZmxvYXQgYmFzZV9wYXlbTUFYX0VNUExPWUVFXSA9IHsgMC4wZiB9OwoJZmxvYXQgb3ZlcnRpbWVfcGF5W01BWF9FTVBMT1lFRV0gPSB7IDAuMGYgfTsKCWZsb2F0IHRheGVzX293ZWRbTUFYX0VNUExPWUVFXSA9IHsgMC4wZiB9OwoJZmxvYXQgbmV0X3BheVtNQVhfRU1QTE9ZRUVdID0geyAwLjBmIH07CglmbG9hdCB0b3RhbF9wYXkgPSAwLjBmOwoKCVByb21wdChmaXJzdF9uYW1lLCByYXRlLCBob3Vycyk7CglHcm9zc1BheShncm9zc19wYXksIGJhc2VfcGF5LCBvdmVydGltZV9wYXksIHJhdGUsIGhvdXJzKTsKCVRheGVzKHRheGVzX293ZWQsIGdyb3NzX3BheSk7CgoJdG90YWxfcGF5ID0gQ2FsY3VsYXRlVG90YWwoZ3Jvc3NfcGF5KTsKCglmb3IgKGludCBpID0gMDsgaSA8IE1BWF9FTVBMT1lFRTsgaSsrKQoJCW5ldF9wYXlbaV0gPSBncm9zc19wYXlbaV0gLSB0YXhlc19vd2VkW2ldOwoKCVByaW50T3V0cHV0KGZpcnN0X25hbWUsIHJhdGUsIGhvdXJzLCBncm9zc19wYXksIGJhc2VfcGF5LCBvdmVydGltZV9wYXksIHRheGVzX293ZWQsIG5ldF9wYXksIHRvdGFsX3BheSk7CglyZXR1cm4gMDsKfQo=