# C/C++ program to add N distances given in inch-feet system using Structures

• Last Updated : 21 May, 2020

Given an array arr[] containing N distances of inch-feet system, such that each element of the array represents a distance in the form of {inch, feet}. The task is to add all the N inch-feet distances using structures.

Examples:

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

Input: arr[] = { { 10, 3.7 }, { 10, 5.5 }, { 6, 8.0 } };
Output:
Feet Sum: 27
Inch Sum: 5.20

Input: arr[] = { { 1, 1.7 }, { 1, 1.5 }, { 6, 8 } };
Output:
Feet Sum: 8
Inch Sum: 11.20

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach:

1. Traverse the struct array arr and find the summation of all the inches of the given set of N distances as:
```feet_sum = feet_sum + arr[i].feet;
inch_sum = inch_sum + arr[i].inch;
```
2. If the sum of all the inches (say inch_sum) is greater than 12, then convert the inch_sum into feet because
```1 feet = 12 inches
```

Therefore update inch_sum to inch_sum % 12. Then find the summation of all the feets(say feet_sum) of N distances and add inches_sum/12 to this sum.

3. Print the feet_sum and inch_sum individually.

Below is the implementation of the above approach:

## C

 `// C program for the above approach`` ` `#include "stdio.h"`` ` `// Struct defined for the inch-feet system``struct` `InchFeet {`` ` `    ``// Variable to store the inch-feet``    ``int` `feet;``    ``float` `inch;``};`` ` `// Function to find the sum of all N``// set of Inch Feet distances``void` `findSum(``struct` `InchFeet arr[], ``int` `N)``{`` ` `    ``// Variable to store sum``    ``int` `feet_sum = 0;``    ``float` `inch_sum = 0.0;`` ` `    ``int` `x;`` ` `    ``// Traverse the InchFeet array``    ``for` `(``int` `i = 0; i < N; i++) {`` ` `        ``// Find the total sum of``        ``// feet and inch``        ``feet_sum += arr[i].feet;``        ``inch_sum += arr[i].inch;``    ``}`` ` `    ``// If inch sum is greater than 11``    ``// convert it into feet``    ``// as 1 feet = 12 inch``    ``if` `(inch_sum >= 12) {`` ` `        ``// Find integral part of inch_sum``        ``x = (``int``)inch_sum;`` ` `        ``// Delete the integral part x``        ``inch_sum -= x;`` ` `        ``// Add x%12 to inch_sum``        ``inch_sum += x % 12;`` ` `        ``// Add x/12 to feet_sum``        ``feet_sum += x / 12;``    ``}`` ` `    ``// Print the corresponding sum of``    ``// feet_sum and inch_sum``    ``printf``(``"Feet Sum: %d\n"``, feet_sum);``    ``printf``(``"Inch Sum: %.2f"``, inch_sum);``}`` ` `// Driver Code``int` `main()``{`` ` `    ``// Given set of inch-feet``    ``struct` `InchFeet arr[]``        ``= { { 10, 3.7 },``            ``{ 10, 5.5 },``            ``{ 6, 8.0 } };`` ` `    ``int` `N = ``sizeof``(arr) / ``sizeof``(arr);`` ` `    ``// Function Call``    ``findSum(arr, N);`` ` `    ``return` `0;``}`

## C++

 `// C++ program for the above approach``#include "iostream"``using` `namespace` `std;`` ` `// Struct defined for the inch-feet system``struct` `InchFeet {`` ` `    ``// Variable to store the inch-feet``    ``int` `feet;``    ``float` `inch;``};`` ` `// Function to find the sum of all N``// set of Inch Feet distances``void` `findSum(InchFeet arr[], ``int` `N)``{`` ` `    ``// Variable to store sum``    ``int` `feet_sum = 0;``    ``float` `inch_sum = 0.0;`` ` `    ``int` `x;`` ` `    ``// Traverse the InchFeet array``    ``for` `(``int` `i = 0; i < N; i++) {`` ` `        ``// Find the total sum of``        ``// feet and inch``        ``feet_sum += arr[i].feet;``        ``inch_sum += arr[i].inch;``    ``}`` ` `    ``// If inch sum is greater than 11``    ``if` `(inch_sum >= 12) {`` ` `        ``// Find integral part of inch_sum``        ``int` `x = (``int``)inch_sum;`` ` `        ``// Delete the integral part x``        ``inch_sum -= x;`` ` `        ``// Add x%12 to inch_sum``        ``inch_sum += x % 12;`` ` `        ``// Add x/12 to feet_sum``        ``feet_sum += x / 12;``    ``}`` ` `    ``// Print the corresponding sum of``    ``// feet_sum and inch_sum``    ``cout << ``"Feet Sum: "``         ``<< feet_sum << ``'\n'``         ``<< ``"Inch Sum: "``         ``<< inch_sum << endl;``}`` ` `// Driver Code``int` `main()``{`` ` `    ``// Given a set of inch-feet``    ``InchFeet arr[]``        ``= { { 10, 3.7 },``            ``{ 10, 5.5 },``            ``{ 6, 8.0 } };`` ` `    ``int` `N = ``sizeof``(arr) / ``sizeof``(arr);`` ` `    ``// Function Call``    ``findSum(arr, N);`` ` `    ``return` `0;``}`
Output:
```Feet Sum: 27
Inch Sum: 5.20
```

Time Complexity: O(N), where N is the number inch-feet distances.

My Personal Notes arrow_drop_up