Структура з Масивами та Іншими Структурами
У деяких структурах виникає необхідність використовувати масив вкладених структур, коли один об'єкт містить декілька пов'язаних підоб'єктів. Наприклад, якщо студент може відвідувати кілька курсів, доцільно представити курси як масив структур всередині структури Student.
Синтаксис прикладу:
OuterStruct.NestedStruct[1].NestedField;
Щоб отримати доступ до елемента масиву вкладених структур, спочатку звертаються до зовнішньої структури, потім використовують індекс для вибору потрібного елемента масиву, і нарешті отримують доступ до конкретного поля цього елемента.
Практичний приклад
Уявіть, що кожен студент має ім'я, вік і набір курсів. Кожен курс містить свою назву, викладача та кількість кредитів.
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; }
У цьому прикладі структура Student містить масив courses з трьома елементами типу Course. Кожен курс має власну назву, викладача та кількість кредитів. Для доступу до конкретного курсу використовуйте індекс масиву та оператор крапки: student.courses[1].instructor.
Використання масивів вкладених структур корисне для представлення об'єктів із повторюваними підоб'єктами, наприклад, студентів із курсами, магазинів із товарами або книг із авторами.
Swipe to start coding
Студент представлений структурою Student, яка містить масив фіксованого розміру вкладених структур Course. Кожен курс має назву, викладача та кількість кредитів. Функція повинна пройтись по всіх курсах і підсумувати кредити.
Реалізуйте функцію calculateTotalCredits з типом повернення int.
- Усередині функції створіть змінну типу
intз іменемtotal, ініціалізовану значенням0. - Використайте цикл
forдля ітерації від0до кількості курсів (3). - Для кожного курсу отримайте значення
creditsі додайте його доtotal. - Поверніть фінальне значення
total.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Чудово!
Completion показник покращився до 4.35
Структура з Масивами та Іншими Структурами
Свайпніть щоб показати меню
У деяких структурах виникає необхідність використовувати масив вкладених структур, коли один об'єкт містить декілька пов'язаних підоб'єктів. Наприклад, якщо студент може відвідувати кілька курсів, доцільно представити курси як масив структур всередині структури Student.
Синтаксис прикладу:
OuterStruct.NestedStruct[1].NestedField;
Щоб отримати доступ до елемента масиву вкладених структур, спочатку звертаються до зовнішньої структури, потім використовують індекс для вибору потрібного елемента масиву, і нарешті отримують доступ до конкретного поля цього елемента.
Практичний приклад
Уявіть, що кожен студент має ім'я, вік і набір курсів. Кожен курс містить свою назву, викладача та кількість кредитів.
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; }
У цьому прикладі структура Student містить масив courses з трьома елементами типу Course. Кожен курс має власну назву, викладача та кількість кредитів. Для доступу до конкретного курсу використовуйте індекс масиву та оператор крапки: student.courses[1].instructor.
Використання масивів вкладених структур корисне для представлення об'єктів із повторюваними підоб'єктами, наприклад, студентів із курсами, магазинів із товарами або книг із авторами.
Swipe to start coding
Студент представлений структурою Student, яка містить масив фіксованого розміру вкладених структур Course. Кожен курс має назву, викладача та кількість кредитів. Функція повинна пройтись по всіх курсах і підсумувати кредити.
Реалізуйте функцію calculateTotalCredits з типом повернення int.
- Усередині функції створіть змінну типу
intз іменемtotal, ініціалізовану значенням0. - Використайте цикл
forдля ітерації від0до кількості курсів (3). - Для кожного курсу отримайте значення
creditsі додайте його доtotal. - Поверніть фінальне значення
total.
Рішення
Дякуємо за ваш відгук!
single