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.20Entrada: arr[] = { { 1, 1.7 }, { 1, 1.5 }, { 6, 8 } };
Salida:
Pies Suma: 8
Pulgadas Suma: 11.20
Acercarse:
- 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;
- 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.
- 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; }
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