Struct Avec des Tableaux et d'Autres Structs
Dans certaines structures, il devient nécessaire d'utiliser un tableau de structures imbriquées lorsqu'un objet contient plusieurs sous-objets liés. Par exemple, si un étudiant peut suivre plusieurs cours, il est logique de représenter les cours comme un tableau de structures à l'intérieur de la structure Student.
Syntaxe d'exemple :
OuterStruct.NestedStruct[1].NestedField;
Pour accéder à un élément du tableau de structures imbriquées, il faut d'abord faire référence à la structure externe, puis utiliser un indice pour sélectionner l'élément souhaité du tableau, et enfin accéder à un champ spécifique de cet élément.
Exemple pratique
Supposons que chaque étudiant possède un nom, un âge et un ensemble de cours. Chaque cours contient son titre, son enseignant et son nombre de crédits.
main.c
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152#include <stdio.h> #include <string.h> struct Course { char name[50]; char instructor[50]; int credits; }; struct Student { char name[50]; int age; struct Course courses[3]; // array of nested structures }; int main() { struct Student student; // Initialize student strcpy(student.name, "Alice Johnson"); student.age = 20; // Initialize courses strcpy(student.courses[0].name, "Mathematics"); strcpy(student.courses[0].instructor, "Dr. Smith"); student.courses[0].credits = 4; strcpy(student.courses[1].name, "Computer Science"); strcpy(student.courses[1].instructor, "Prof. Brown"); student.courses[1].credits = 3; strcpy(student.courses[2].name, "History"); strcpy(student.courses[2].instructor, "Dr. Green"); student.courses[2].credits = 2; // Display information printf("Student: %s\n", student.name); printf("Age: %d\n", student.age); printf("Courses:\n"); for (int i = 0; i < 3; i++) { printf(" Course %d: %s, Instructor: %s, Credits: %d\n", i + 1, student.courses[i].name, student.courses[i].instructor, student.courses[i].credits); } // Example of accessing a specific nested field printf("\nInstructor of the second course: %s\n", student.courses[1].instructor); return 0; }
Dans cet exemple, la structure Student possède un tableau courses contenant trois éléments de type Course. Chaque cours possède son propre titre, instructeur et nombre de crédits. Pour accéder à un cours spécifique, utilisez l'indice du tableau et l'opérateur point : student.courses[1].instructor.
L'utilisation de tableaux de structures imbriquées est utile pour représenter des objets comportant des sous-objets répétés, tels que des étudiants avec des cours, des magasins avec des produits ou des livres avec des auteurs.
Swipe to start coding
L'étudiant est représenté par une structure Student qui contient un tableau de taille fixe de structures imbriquées Course. Chaque cours possède un nom, un instructeur et un nombre de crédits. La fonction doit parcourir tous les cours et additionner les crédits.
Implémenter une fonction calculateTotalCredits avec un type de retour int.
- À l'intérieur de la fonction, créer une variable
intnomméetotalinitialisée à0. - Utiliser une boucle
forpour itérer de0au nombre de cours (3). - Pour chaque cours, accéder à
creditset l'ajouter àtotal. - Retourner la valeur finale de
total.
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Can you show me a code example of how to define these nested structures?
How do I access or modify a specific course for a student?
What are some other real-world scenarios where nested structure arrays are useful?
Génial!
Completion taux amélioré à 4.35
Struct Avec des Tableaux et d'Autres Structs
Glissez pour afficher le menu
Dans certaines structures, il devient nécessaire d'utiliser un tableau de structures imbriquées lorsqu'un objet contient plusieurs sous-objets liés. Par exemple, si un étudiant peut suivre plusieurs cours, il est logique de représenter les cours comme un tableau de structures à l'intérieur de la structure Student.
Syntaxe d'exemple :
OuterStruct.NestedStruct[1].NestedField;
Pour accéder à un élément du tableau de structures imbriquées, il faut d'abord faire référence à la structure externe, puis utiliser un indice pour sélectionner l'élément souhaité du tableau, et enfin accéder à un champ spécifique de cet élément.
Exemple pratique
Supposons que chaque étudiant possède un nom, un âge et un ensemble de cours. Chaque cours contient son titre, son enseignant et son nombre de crédits.
main.c
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152#include <stdio.h> #include <string.h> struct Course { char name[50]; char instructor[50]; int credits; }; struct Student { char name[50]; int age; struct Course courses[3]; // array of nested structures }; int main() { struct Student student; // Initialize student strcpy(student.name, "Alice Johnson"); student.age = 20; // Initialize courses strcpy(student.courses[0].name, "Mathematics"); strcpy(student.courses[0].instructor, "Dr. Smith"); student.courses[0].credits = 4; strcpy(student.courses[1].name, "Computer Science"); strcpy(student.courses[1].instructor, "Prof. Brown"); student.courses[1].credits = 3; strcpy(student.courses[2].name, "History"); strcpy(student.courses[2].instructor, "Dr. Green"); student.courses[2].credits = 2; // Display information printf("Student: %s\n", student.name); printf("Age: %d\n", student.age); printf("Courses:\n"); for (int i = 0; i < 3; i++) { printf(" Course %d: %s, Instructor: %s, Credits: %d\n", i + 1, student.courses[i].name, student.courses[i].instructor, student.courses[i].credits); } // Example of accessing a specific nested field printf("\nInstructor of the second course: %s\n", student.courses[1].instructor); return 0; }
Dans cet exemple, la structure Student possède un tableau courses contenant trois éléments de type Course. Chaque cours possède son propre titre, instructeur et nombre de crédits. Pour accéder à un cours spécifique, utilisez l'indice du tableau et l'opérateur point : student.courses[1].instructor.
L'utilisation de tableaux de structures imbriquées est utile pour représenter des objets comportant des sous-objets répétés, tels que des étudiants avec des cours, des magasins avec des produits ou des livres avec des auteurs.
Swipe to start coding
L'étudiant est représenté par une structure Student qui contient un tableau de taille fixe de structures imbriquées Course. Chaque cours possède un nom, un instructeur et un nombre de crédits. La fonction doit parcourir tous les cours et additionner les crédits.
Implémenter une fonction calculateTotalCredits avec un type de retour int.
- À l'intérieur de la fonction, créer une variable
intnomméetotalinitialisée à0. - Utiliser une boucle
forpour itérer de0au nombre de cours (3). - Pour chaque cours, accéder à
creditset l'ajouter àtotal. - Retourner la valeur finale de
total.
Solution
Merci pour vos commentaires !
single