C Program to Compute Charges for Sending Parcels as per its Weight

In this tutorial, we will learn about how to create a program in C that will compute and print the charge (that has to paid by the sender) to send parcel as per its weight. That is the program will ask from the sender (or user) to enter the weight of the parcel and will calculate and print the charge for sending that parcel (of given weight).

The program is designed in a way as told in below line:
A post office charges parcel senders according to the weight of the parcel. For each parcel having weight 2 Kg or less, the charge is 32.50 and for each extra Kg, there is an additional charge of 10.50

#include<stdio.h>
#include<conio.h>
int main()
{
    float weight, initCharge=32.50, perCharge=10.50, tempWeight, addCharge, totalCharge;
    printf("Enter weight of the parcel (in Kg): ");
    scanf("%f", &weight);
    printf("\n");
    if(weight<=2)
        printf("Charge = %0.2f", initCharge);
    else
    {
        tempWeight = weight-2;
        addCharge = tempWeight * perCharge;
        totalCharge = addCharge + initCharge;
        printf("Charge = %0.2f", totalCharge);
    }
    getch();
    return 0;
}

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

c program calculate parcel charge

Now user has to enter the weight of parcel to see the total charge that he/she has to paid. Here is the second snapshot of the same sample run:

print parcel charge c program

If the weight of the parcel is less than or equal to 2, then there is only 32.50 that has to be paid by the parcel sender. Let's take a look at another sample run:

c program print parcel charge

Let's take another sample run as given below. This time user has entered the parcel weight as 1.5 Kg:

c program parcel charge with parcel weight

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

  • Take any two variable say initCharge and perCharge. Initialize 32.50 (charge for parcel with less than or equal to 2kg weight) to initCharge and initialize 10.50 (charge for every extra kg of parcel weight) to perCharge
  • Now receive the weight of the parcel by user at run-time
  • Check whether the given weight is less than or equal to 2 or not
  • If it is, then just print the value of initCharge as output that holds the charge value of parcel with weight less than or equal to 2 kg
  • Otherwise if the weight of the parcel is greater than 2kg, then follow the steps given below
  • As the first 2kg of parcel charge is 32.50. Therefore we have to subtract the original weight by 2 and then compute the charge as per given rate that is 10.50 per every extra kg. And then add the calculated charge with 32.50, after this you will get the final charge that has to be paid by the parcel sender to send the parcel
  • For example, if user has entered the weight of the parcel as 10kg. As the value 10 is greater than 2, therefore program flow goes inside the else block
  • Inside else block, weight-2 or 10-2 or 8 is initialized to tempWeight, then tempWeight * perCharge or 8 * 10.50 or 84 is initialized to addCharge, and then addCharge + initCharge or 84 + 32.50 or 116.5 is initialized to totalCharge
  • Print the value of totalCharge as output that will be the final charge (to paid) to send the parcel

C Online Test


« Previous Program Next Program »