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

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:

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

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

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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[0]);
  
    // Function Call
    findSum(arr, N);
  
    return 0;
}

chevron_right


C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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[0]);
  
    // Function Call
    findSum(arr, N);
  
    return 0;
}

chevron_right


Output:

Feet Sum: 27
Inch Sum: 5.20

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

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.