Array de estructuras frente a array dentro de una estructura en C/C++

Array dentro de una estructura

Una estructura es un tipo de datos en C/C++ que permite tratar un grupo de variables relacionadas como una sola unidad en lugar de entidades separadas. Una estructura puede contener elementos de diferentes tipos de datos: int, char, float, double, etc. También puede contener una array como miembro. Una array de este tipo se denomina array dentro de una estructura. Una array dentro de una estructura es un miembro de la estructura y se puede acceder a ella del mismo modo que accedemos a otros elementos de la estructura.

A continuación se muestra la demostración de un programa que utiliza el concepto de array dentro de una estructura. El programa muestra el registro de un estudiante que comprende el número de lista , el grado y las marcas obtenidas en varias materias. Las calificaciones en varios temas se han almacenado en una array llamada marcas . Todo el registro se almacena bajo una estructura llamada candidato .

C++

// C++ program to demonstrate the
// use of an array within a structure
 
#include <iostream>
using namespace std;
 
// Declaration of the structure candidate
struct candidate {
    int roll_no;
    char grade;
 
    // Array within the structure
    float marks[4];
};
 
// Function to displays the content of
// the structure variables
void display(struct candidate a1)
{
 
    cout << "Roll number : " << a1.roll_no << endl;
    cout <<"Grade : " << a1.grade << endl;
    cout << "Marks secured:\n";
    int i;
    int len = sizeof(a1.marks) / sizeof(float);
 
    // Accessing the contents of the
    // array within the structure
    for (i = 0; i < len; i++) {
        cout << "Subject " << i + 1 << " : " << a1.marks[i] << endl;
      }
}
 
// Driver Code
int main()
{
    // Initialize a structure
    struct candidate A
        = { 1, 'A', { 98.5, 77, 89, 78.5 } };
 
    // Function to display structure
    display(A);
    return 0;
}
 
// This code is contributed by sarajadhav12052009

C

// C program to demonstrate the
// use of an array within a structure
#include <stdio.h>
 
// Declaration of the structure candidate
struct candidate {
    int roll_no;
    char grade;
 
    // Array within the structure
    float marks[4];
};
 
// Function to displays the content of
// the structure variables
void display(struct candidate a1)
{
 
    printf("Roll number : %d\n", a1.roll_no);
    printf("Grade : %c\n", a1.grade);
    printf("Marks secured:\n");
    int i;
    int len = sizeof(a1.marks) / sizeof(float);
 
    // Accessing the contents of the
    // array within the structure
    for (i = 0; i < len; i++) {
        printf("Subject %d : %.2f\n",
               i + 1, a1.marks[i]);
    }
}
 
// Driver Code
int main()
{
    // Initialize a structure
    struct candidate A
        = { 1, 'A', { 98.5, 77, 89, 78.5 } };
 
    // Function to display structure
    display(A);
    return 0;
}
Producción:

Roll number : 1
Grade : A
Marks secured:
Subject 1 : 98.50
Subject 2 : 77.00
Subject 3 : 89.00
Subject 4 : 78.50

Array de estructuras

Una array es una colección de elementos de datos del mismo tipo. Cada elemento de la array puede ser int, char, float, double o incluso una estructura. Hemos visto que una estructura permite agrupar elementos de diferentes tipos de datos bajo un mismo nombre. Esta estructura se puede considerar como un nuevo tipo de datos en sí mismo. Entonces, una array puede comprender elementos de este nuevo tipo de datos. Una array de estructuras encuentra sus aplicaciones en la agrupación de registros y proporciona un acceso rápido. A continuación se muestra la demostración de una serie de estructuras. La array contiene los detalles de los estudiantes en una clase. Los detalles incluyen el número de rollo, el grado y las marcas ., que se han agrupado bajo una estructura (registro). Existe un registro para cada alumno. Así es como se puede ensamblar una colección de variables relacionadas bajo una sola entidad para mejorar la claridad del código y aumentar su eficiencia. 

C

// C program to demonstrate the
// usage of an array of structures
#include <stdio.h>
 
// Declaring a structure class
struct class {
    int roll_no;
    char grade;
    float marks;
};
 
// Function to displays the contents
// of the array of structures
void display(struct class class_record[3])
{
    int i, len = 3;
 
    // Display the contents of the array
    // of structures here, each element
    // of the array is a structure of class
    for (i = 0; i < len; i++) {
        printf("Roll number : %d\n",
               class_record[i].roll_no);
        printf("Grade : %c\n",
               class_record[i].grade);
        printf("Average marks : %.2f\n",
               class_record[i].marks);
        printf("\n");
    }
}
 
// Driver Code
int main()
{
    // Initialize of an array of structures
    struct class class_record[3]
        = { { 1, 'A', 89.5f },
            { 2, 'C', 67.5f },
            { 3, 'B', 70.5f } };
 
    // Function Call to display
    // the class_record
    display(class_record);
    return 0;
}
Producción:

Roll number : 1
Grade : A
Average marks : 89.50

Roll number : 2
Grade : C
Average marks : 67.50

Roll number : 3
Grade : B
Average marks : 70.50

A continuación se muestra la diferencia tabular entre la array dentro de una estructura y la array de estructuras:

  Array dentro de una estructura Array de estructuras
Idea básica Una estructura contiene una array como su variable miembro Una array en la que cada elemento es de tipo estructura.
Acceso Se puede acceder usando el operador punto tal como accedemos a otros elementos de la estructura Se puede acceder indexando tal como accedemos a una array
Sintaxis

clase de estructura { int ar[10]; } a1, a2, a3;

clase de estructura {int a, b, c; } estudiantes[10];

Publicación traducida automáticamente

Artículo escrito por diya_nc 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 *