C Program to Calculate Wage of Labor on Daily Basis

In this tutorial, we will learn about how to create a program in C that will calculate and print the total wage of labor on daily basis. Here wage is the salary or money that has to be paid to the worker or labor. Labor is the man who worked for you. The money that has to be paid to the labor will be on daily basis as per the following wage structure:

Hours Worked Rate Applicable
Up to first 8 hours 50.00
For next 4 hours 10.00 per hour extra
For next 4 hours 20.00 per hour extra
For next 4 hours 25.00 per hour extra
For next 4 hours 40.00 per hour extra

Find and Print Wages of Labor in C

The question is, write a program in C, to compute the wage of labor working on the daily basis as per the wage structure provided in above table. And the output should looks like:

Enter Name of Employee:      XXXXXXXX
Enter total hours worked:    21
Total Wage:                  310

The program given below is the answer to this above question:

#include<stdio.h>
#include<conio.h>
int main()
{
    float initWage=50, hours, tempHour, tempWage, totalWage;
    char name[20];
    printf("Enter Name of Employee: \t");
    gets(name);
    printf("Enter total hours worked: \t");
    scanf("%f", &hours);
    if(hours<=8)
        totalWage = initWage;
    else if(hours>8 && hours<=12)
    {
        tempHour = hours-8;
        tempWage = tempHour*10;
        totalWage = tempWage + initWage;
    }
    else if(hours>12 && hours<=16)
    {
        tempHour = hours-12;
        tempWage = 4*10;
        totalWage = initWage + tempWage + (tempHour*20);
    }
    else if(hours>16 && hours<=20)
    {
        tempHour = hours-16;
        tempWage = (4*10) + (4*20);
        totalWage = initWage + tempWage + (tempHour*25);
    }
    else if(hours>20 && hours<=24)
    {
        tempHour = hours-20;
        tempWage = (4*10) + (4*20) + (4*25);
        totalWage = initWage + tempWage + (tempHour*40);
    }
    else
    {
        printf("A single day only has 24 hours.");
        getch();
        return 0;
    }
    printf("Total Wage: \t\t\t%0.2f", totalWage);
    getch();
    return 0;
}

As the program was written under Code::Blocks IDE, therefore here is the sample run after successful build and run:

c program calculate wage of labour

Now provide the name of the labor say codescracker, then total hours worked by him say 21. Press ENTER key to see the wage of labor as shown in the second snapshot of the sample run given here:

compute wage of labour on daily basis

Here is another sample run. In this case, the labor has worked for all the day (24 hour). Let's see according to the above pay-scale, what will be the earning of the labor for one whole day:

print wage of labour c

Here are some of the main steps used in above program:

  • Ask from user to enter his name
  • Again ask to enter how many hours he has worked for any particular date (or for today)
  • Never forgot to initialize a variable say initWage with 50 as its initial value at start of the program. Because according to pre-defined wage structure given above, employer has to paid 50 to the employee for his first 8 hours of work. No matter whether he has worked only for 1 hours or total of 8 hours.
  • Now check whether the hour worked is less than or equal to 8 or not
  • If it is, then just initialize the value of initWage to the variable say totalWage that will hold up the total wage of the labor at last of the program
  • If worked hour is not less than or equal to 8, then check whether it is greater than 8 and less than or equal to 12 or not
  • If it is, then add the rate given for next 4 hour after initial 8 hours worked by the labor, that is 10 rupees per hour is the extra rate for next 4 hour after starting 8 hours, it means we have to minus the given hour by 8 and then multiply the remaining hour value with 10, and then add it up with 50 to initialize it to the totalWage of labor
  • In this way continue checking and calculating for the given number of hours
  • For example, if labor has worked 23 hours in a day, then the wage that has to be paid to labor will be calculated as:
    • As the user has entered 23 as total hours worked, therefore 23 will be initialized to hours variable
    • As 23 is greater than 20 and less than or equal to 24, therefore the program flow goes inside the last else if block where the applied condition is:
      else if(hours>20 && hours<=24)
      As the rate for first 8 hours is 50 rupees, rate for next 4 hours is 10/hr extra, rate for next 4 hours is 20/hr extra, rate for next 4 hours is 25/hr extra, and rate for next and last 4 hours is 40/hr extra
    • Therefore, we have to initialize 50 + (4*10) + (4*20) + (4*25) + ((hours-20)*40) or 50 + 80 + 100 + ((23-20) *40) or 230 + (3*40) or 230 + 120 or 350 to the variable say totalWage. In this program, what the total wage is, totalWage will hold it
  • Finally print the value of totalWage as output

C Online Test


« Previous Program Next Program »

Follow/Like Us on Facebook




Subscribe Us on YouTube