МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів Контакти
Тлумачний словник |
|
|||||||||||||||||||||||||||||||||||||||||||
Масиви структурРозширимо програму “книжка”, щоб вона могла обробляти 10 книг. #include <iostream.h> #define maxnazva 41 /*максимальна довжина заголовка*/ #define maxavtor 31 /*максимальна довжина імені автора*/ #define maxbk 10 /*максималька кількість книг*/ struct book { char nazva[maxnazva]; char avtor[maxavtor]; float cina; }; main() { struct book libry[maxbk]; int c=0; int i; сout<<“введіть назву книги\n”; cin.get(odna.nazva,maxnazva); cin.get(); while (c< maxbk && gets(libry[c].nazva)!=null && libry[c].nazva[0]!=’\0’) { cout<<“введіть автора\n”; cin.get(odna.avtor,maxavtor); cin.get(); cout<<“введіть ціну\n”; cin>>odna.cina; while (getch()!=‘\n’) continue;/*знищення стрічки вводу*/ if (c< maxbk) cout<<“введіть наступну книгу\n”; } cout<<“тепер виведемо список книг.\n”; for (I=0;I<c;I++) cout<<libry[i].avtor<< libry[i].nazva<< libry[i].cina; return 0; } Спочатку розглянемо опис масиву структур і доступ до окремих елементів. Опис масиву структур подібний до опису будь-якого іншого масиву.
struct book libry[maxbk]; Тут описується масив libry з елементами maxbk. Кожний елемент цього масиву є структурою book. Таким чином, libry[0] -одна структура типу book, libry[1]- друга структура і т.д. Це показано на рисунку nazva avtor cina
Рис.Масиви структур.
Для ідентифікації елементів масиву структур застосовується теж правило, що і для ідентифікації окремих структур: після імені структури йде крапка, а потім ім’я єлемента. libry[0].nazva /*елемент структури cina зв’язаний з першим елементом масиву*/ libry[9].cina /*елемент структури cina зв’язаний з десятим елементом масиву*/ Треба звернути увагу на те, що індекс масиву приєднаний до імені libry, а не до закінчення повного імені. libry[0].nazva /*правильно*/ libry.cina[9] /*неправильно*/ Пояснемо, що означає запис libry[2].cina[4]. Це п’ятий символ елемента cina (частина cina[4])елемента типу book ,описаного третьою структурою (libry[2]). В програмі рядок while (c< maxbk && gets(libry[c].nazva)!=null && libry[c].nazva[0]!=’\0’) трактується так: gets(libry[c].nazva)-задає зчитування стрічки назви книги. Коли ця функція захоче читати після символа кінця файла, вираз приймає значення null.Вираз libry[c].nazva[0]!=’\0’ перевіряє чи не перший символ стрічки нульовим. Це би означало, що стрічка пуста. Рядок while (getch()!=‘\n’) continue;/*знищення стрічки вводу*/ компенсує недоліки функції scanf() і переводить введений результат на нову стрічку.
Читайте також:
|
||||||||||||||||||||||||||||||||||||||||||||
|