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.20Input: arr[] = { { 1, 1.7 }, { 1, 1.5 }, { 6, 8 } };
Output:
Feet Sum: 8
Inch Sum: 11.20
Approach:
- 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;
- 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.
- 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 zambiatek!
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



