Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Struct Avec des Tableaux et d'Autres Structs | Utilisation Avancée des Structs
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Maîtriser les Structs en C

bookStruct 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

main.c

copy
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.

Tâche

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.

  1. À l'intérieur de la fonction, créer une variable int nommée total initialisée à 0.
  2. Utiliser une boucle for pour itérer de 0 au nombre de cours (3).
  3. Pour chaque cours, accéder à credits et l'ajouter à total.
  4. Retourner la valeur finale de total.

Solution

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 2
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

close

bookStruct 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

main.c

copy
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.

Tâche

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.

  1. À l'intérieur de la fonction, créer une variable int nommée total initialisée à 0.
  2. Utiliser une boucle for pour itérer de 0 au nombre de cours (3).
  3. Pour chaque cours, accéder à credits et l'ajouter à total.
  4. Retourner la valeur finale de total.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 2
single

single

some-alt