Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Структура з Масивами та Іншими Структурами | Розширене Використання Структур
Опанування Структур у C

bookСтруктура з Масивами та Іншими Структурами

У деяких структурах виникає необхідність використовувати масив вкладених структур, коли один об'єкт містить декілька пов'язаних підоб'єктів. Наприклад, якщо студент може відвідувати кілька курсів, доцільно представити курси як масив структур всередині структури Student.

Синтаксис прикладу:

OuterStruct.NestedStruct[1].NestedField;

Щоб отримати доступ до елемента масиву вкладених структур, спочатку звертаються до зовнішньої структури, потім використовують індекс для вибору потрібного елемента масиву, і нарешті отримують доступ до конкретного поля цього елемента.

Практичний приклад

Уявіть, що кожен студент має ім'я, вік і набір курсів. Кожен курс містить свою назву, викладача та кількість кредитів.

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; }

У цьому прикладі структура Student містить масив courses з трьома елементами типу Course. Кожен курс має власну назву, викладача та кількість кредитів. Для доступу до конкретного курсу використовуйте індекс масиву та оператор крапки: student.courses[1].instructor.

Використання масивів вкладених структур корисне для представлення об'єктів із повторюваними підоб'єктами, наприклад, студентів із курсами, магазинів із товарами або книг із авторами.

Завдання

Swipe to start coding

Студент представлений структурою Student, яка містить масив фіксованого розміру вкладених структур Course. Кожен курс має назву, викладача та кількість кредитів. Функція повинна пройтись по всіх курсах і підсумувати кредити.

Реалізуйте функцію calculateTotalCredits з типом повернення int.

  1. Усередині функції створіть змінну типу int з іменем total, ініціалізовану значенням 0.
  2. Використайте цикл for для ітерації від 0 до кількості курсів (3).
  3. Для кожного курсу отримайте значення credits і додайте його до total.
  4. Поверніть фінальне значення total.

Рішення

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 2
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

close

bookСтруктура з Масивами та Іншими Структурами

Свайпніть щоб показати меню

У деяких структурах виникає необхідність використовувати масив вкладених структур, коли один об'єкт містить декілька пов'язаних підоб'єктів. Наприклад, якщо студент може відвідувати кілька курсів, доцільно представити курси як масив структур всередині структури Student.

Синтаксис прикладу:

OuterStruct.NestedStruct[1].NestedField;

Щоб отримати доступ до елемента масиву вкладених структур, спочатку звертаються до зовнішньої структури, потім використовують індекс для вибору потрібного елемента масиву, і нарешті отримують доступ до конкретного поля цього елемента.

Практичний приклад

Уявіть, що кожен студент має ім'я, вік і набір курсів. Кожен курс містить свою назву, викладача та кількість кредитів.

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; }

У цьому прикладі структура Student містить масив courses з трьома елементами типу Course. Кожен курс має власну назву, викладача та кількість кредитів. Для доступу до конкретного курсу використовуйте індекс масиву та оператор крапки: student.courses[1].instructor.

Використання масивів вкладених структур корисне для представлення об'єктів із повторюваними підоб'єктами, наприклад, студентів із курсами, магазинів із товарами або книг із авторами.

Завдання

Swipe to start coding

Студент представлений структурою Student, яка містить масив фіксованого розміру вкладених структур Course. Кожен курс має назву, викладача та кількість кредитів. Функція повинна пройтись по всіх курсах і підсумувати кредити.

Реалізуйте функцію calculateTotalCredits з типом повернення int.

  1. Усередині функції створіть змінну типу int з іменем total, ініціалізовану значенням 0.
  2. Використайте цикл for для ітерації від 0 до кількості курсів (3).
  3. Для кожного курсу отримайте значення credits і додайте його до total.
  4. Поверніть фінальне значення total.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 2
single

single

some-alt