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

bookМасиви зі Структурами

Створення масиву зі структур не відрізняється від створення масиву з іншими типами даних.

Доступ до елементів такого масиву здійснюється так само, як і до звичайних масивів — за індексами.

struct Person {
    char name[50];
    int age;
    double height;
};

struct Person people[2];

Як приклад, створимо масив структур, який зберігатиме інформацію про людину.

main.c

main.c

copy
12345678910111213141516171819202122232425262728293031323334353637
#include <stdio.h> #include <string.h> // structure definition struct Person { char name[50]; int age; double height; }; int main() { // declaring an array of structures struct Person people[3]; strcpy(people[0].name, "Alice"); people[0].age = 25; people[0].height = 1.75; strcpy(people[1].name, "Bob"); people[1].age = 30; people[1].height = 1.80; strcpy(people[2].name, "Charlie"); people[2].age = 35; people[2].height = 1.70; // output information about people from the array for (int i = 0; i < 3; ++i) { printf("Person %d:\n", i + 1); printf("Name: %s\n", people[i].name); printf("Age: %d\n", people[i].age); printf("Height: %.2f\n", people[i].height); printf("\n"); } return 0; }

Кожен елемент масиву people представляє окрему структуру Person. Ми можемо отримати доступ до полів конкретної особи, використовуючи індекс масиву, наприклад: people[0].name або people[1].age.

Далі ми проходимо по всьому масиву за допомогою циклу for і виводимо інформацію про кожну особу на екран.

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

Завдання

Swipe to start coding

Реалізуйте функцію calculateWarehouseTotal, яка обчислює загальну вартість усіх товарів, що зберігаються на складі. Кожен товар має назву, кількість і ціну. Функція повинна проходити по масиву товарів і обчислювати суму quantity * price для всіх елементів.

  1. Усередині функції calculateWarehouseTotal створіть змінну total, ініціалізовану значенням 0.0f.
  2. Використайте цикл for для ітерації від індексу 0 до n.
  3. Для кожного товару перемножте quantity на price і додайте результат до total.
  4. Поверніть кінцеве значення total як загальну вартість складу.

Рішення

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

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

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

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

single

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Suggested prompts:

Can you show me how to initialize the array of structures with data?

How do I print all the information for each person in the array?

Can you explain how to modify a specific field in one of the structures?

close

bookМасиви зі Структурами

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

Створення масиву зі структур не відрізняється від створення масиву з іншими типами даних.

Доступ до елементів такого масиву здійснюється так само, як і до звичайних масивів — за індексами.

struct Person {
    char name[50];
    int age;
    double height;
};

struct Person people[2];

Як приклад, створимо масив структур, який зберігатиме інформацію про людину.

main.c

main.c

copy
12345678910111213141516171819202122232425262728293031323334353637
#include <stdio.h> #include <string.h> // structure definition struct Person { char name[50]; int age; double height; }; int main() { // declaring an array of structures struct Person people[3]; strcpy(people[0].name, "Alice"); people[0].age = 25; people[0].height = 1.75; strcpy(people[1].name, "Bob"); people[1].age = 30; people[1].height = 1.80; strcpy(people[2].name, "Charlie"); people[2].age = 35; people[2].height = 1.70; // output information about people from the array for (int i = 0; i < 3; ++i) { printf("Person %d:\n", i + 1); printf("Name: %s\n", people[i].name); printf("Age: %d\n", people[i].age); printf("Height: %.2f\n", people[i].height); printf("\n"); } return 0; }

Кожен елемент масиву people представляє окрему структуру Person. Ми можемо отримати доступ до полів конкретної особи, використовуючи індекс масиву, наприклад: people[0].name або people[1].age.

Далі ми проходимо по всьому масиву за допомогою циклу for і виводимо інформацію про кожну особу на екран.

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

Завдання

Swipe to start coding

Реалізуйте функцію calculateWarehouseTotal, яка обчислює загальну вартість усіх товарів, що зберігаються на складі. Кожен товар має назву, кількість і ціну. Функція повинна проходити по масиву товарів і обчислювати суму quantity * price для всіх елементів.

  1. Усередині функції calculateWarehouseTotal створіть змінну total, ініціалізовану значенням 0.0f.
  2. Використайте цикл for для ітерації від індексу 0 до n.
  3. Для кожного товару перемножте quantity на price і додайте результат до total.
  4. Поверніть кінцеве значення total як загальну вартість складу.

Рішення

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

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

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

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

single

some-alt