Thursday, January 16, 2025
Google search engine
HomeData Modelling & AIC/C++ program to add N distances given in inch-feet system using Structures

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




// 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;
}


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[0]);
  
    // 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.

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

Dominic Rubhabha-Wardslaus
Dominic Rubhabha-Wardslaushttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Recent Comments