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:
- 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
#include "stdio.h"
struct InchFeet {
int feet;
float inch;
};
void findSum( struct InchFeet arr[], int N)
{
int feet_sum = 0;
float inch_sum = 0.0;
int x;
for ( int i = 0; i < N; i++) {
feet_sum += arr[i].feet;
inch_sum += arr[i].inch;
}
if (inch_sum >= 12) {
x = ( int )inch_sum;
inch_sum -= x;
inch_sum += x % 12;
feet_sum += x / 12;
}
printf ( "Feet Sum: %d\n" , feet_sum);
printf ( "Inch Sum: %.2f" , inch_sum);
}
int main()
{
struct InchFeet arr[]
= { { 10, 3.7 },
{ 10, 5.5 },
{ 6, 8.0 } };
int N = sizeof (arr) / sizeof (arr[0]);
findSum(arr, N);
return 0;
}
|
C++
#include "iostream"
using namespace std;
struct InchFeet {
int feet;
float inch;
};
void findSum(InchFeet arr[], int N)
{
int feet_sum = 0;
float inch_sum = 0.0;
int x;
for ( int i = 0; i < N; i++) {
feet_sum += arr[i].feet;
inch_sum += arr[i].inch;
}
if (inch_sum >= 12) {
int x = ( int )inch_sum;
inch_sum -= x;
inch_sum += x % 12;
feet_sum += x / 12;
}
cout << "Feet Sum: "
<< feet_sum << '\n'
<< "Inch Sum: "
<< inch_sum << endl;
}
int main()
{
InchFeet arr[]
= { { 10, 3.7 },
{ 10, 5.5 },
{ 6, 8.0 } };
int N = sizeof (arr) / sizeof (arr[0]);
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.
Last Updated :
21 May, 2020
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...