Programa C/C++ para sumar N distancias dadas en sistema de pulgadas-pies usando Estructuras

Dada una array arr[] que contiene N distancias del sistema pulgadas-pies, tal que cada elemento de la array representa una distancia en forma de {pulgadas, pies} . La tarea es sumar todas las distancias de N pulgadas-pies usando estructuras .

Ejemplos:

Entrada: arr[] = { { 10, 3.7 }, { 10, 5.5 }, { 6, 8.0 } };
Salida:
Pies Suma: 27
Pulgadas Suma: 5.20

Entrada: arr[] = { { 1, 1.7 }, { 1, 1.5 }, { 6, 8 } };
Salida:
Pies Suma: 8
Pulgadas Suma: 11.20

Acercarse:

  1. Recorra la array struct arr y encuentre la suma de todas las pulgadas del conjunto dado de N distancias como:
    feet_sum = feet_sum + arr[i].feet;
    inch_sum = inch_sum + arr[i].inch;
    
  2. Si la suma de todas las pulgadas (digamos inch_sum ) es mayor que 12, entonces convierta la inch_sum en pies porque
    1 feet = 12 inches
    

    Por lo tanto actualice inch_sum a inch_sum % 12 . Luego encuentre la suma de todos los pies (por ejemplo, pies_sum ) de N distancias y agregue pulgadas_sum/12 a esta suma.

  3. Imprime pies_sum y pulgadas_sum individualmente.

A continuación se muestra la implementación del enfoque anterior:

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;
}
Producción:

Feet Sum: 27
Inch Sum: 5.20

Complejidad de tiempo: O(N) , donde N es el número de distancias en pulgadas-pies.

Publicación traducida automáticamente

Artículo escrito por sksinha1612 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *