Complete program to read, display, add, and subtract two distances. Distance must be defined using kms and meters
#include <stdio.h>
#include <conio.h>
typedef struct distance
{
int kms;
int meters;
}DISTANCE;
DISTANCE add_distance (DISTANCE, DISTANCE);
DISTANCE subtract_distance (DISTANCE, DISTANCE);
DISTANCE d1, d2, d3, d4;
int main()
{
int option;
clrscr();
do
{
printf("\n ******** MAIN MENU *********");
printf("\n 1. Read the distances ");
printf("\n 2. Display the distances");
printf("\n 3. Add the distances");
printf("\n 4. Subtract the distances");
printf("\n 5. EXIT");
printf("\n Enter your option : ");
scanf("%d", &option);
switch(option)
{
case 1:
printf("\n Enter the first distance in kms and meters: ");
scanf("%d %d", &d1.kms, &d1.meters);
printf("\n Enter the second distance in kms and meters: ");
scanf("%d %d", &d2.kms, &d2.meters);
break;
case 2:
printf("\n The first distance is : %d kms %d meters",
d1.kms, d1.meters);
printf("\n The second distance is : %d kms %d meters",
d2.kms, d2.meters);
break;
case 3:
d3 = add_distance(d1, d2);
printf("\n The sum of two distances is : %d kms %d
meters", d3.kms, d3.meters);
break;
case 4:
d4 = subtract_distance(d1, d2);
printf("\n The difference between two distances is : %d
kms %d meters", d4.kms, d4.meters);
break;
}
}while(option != 5);
getch();
return 0;
}
DISTANCE add_distance(DISTANCE d1, DISTANCE d2)
{
DISTANCE sum;
sum.meters = d1.meters + d2.meters;
sum.kms = d1.kms + d2.kms;
while (sum.meters >= 1000)
{
sum.meters = sum.meters % 1000;
sum.kms += 1;
}
return sum;
}
DISTANCE subtract_distance(DISTANCE d1, DISTANCE d2)
{
DISTANCE sub;
if(d1.kms > d2.kms)
{
sub.meters = d1.meters – d2.meters;
sub.kms = d1.kms – d2.kms;
}
else
{
sub.meters = d2.meters – d1.meters;
sub.kms = d2.kms – d1.kms;
}
if(sub.meters < 0)
{
sub.kms = sum.kms – 1;
sub.meters = sum.meters + 1000;
}
return sub;
}
Output
******** MAIN MENU *********
1. Read the distances
2. Display the distances
3. Add the distances
4. Subtract the distances
5. EXIT
Enter your option : 1
Enter the first distance in kms and meters: 5 300
Enter the second distance in kms and meters: 3 400
Enter your option : 3
The sum of two distances is: 8 kms 700 meters
Enter your option : 5