diff --git a/task_3 b/task_3 index 2a9a858..8e3437f 100644 --- a/task_3 +++ b/task_3 @@ -46,23 +46,24 @@ int main() { strcpy(students[0].name, "Александр "); students[0].year = 2019; students[0].average_score = 4.2; - students[0].gender = 1; students[0].courses = 6; - students[0].leader = nullptr; + students[0].gender = 1; + students[0].leader = &students[0]; + strcpy(students[1].name, "Алексей"); students[1].year = 2022; students[1].average_score = 3.5; students[1].gender = 1; students[1].courses = 3; - students[1].leader = &students[0]; + students[1].leader = nullptr; strcpy(students[2].name, "Екатерина"); students[2].year = 2021; students[2].average_score = 4.1; students[2].gender = 0; students[2].courses = 4; - students[2].leader = &students[0]; + students[2].leader = nullptr; // Выводим адрес массива и размер массива в байтах cout << "Информация о массиве:" << endl; @@ -77,10 +78,10 @@ int main() { cout << "Размер: " << sizeof(Student) << " байт" << endl << endl; } - cout << "Данные о полях других студентов:" << endl; + cout << "Данные о полях студентов:" << endl; // Выводим смещение поля имени относительно начала структуры - cout << "Имя:" << endl; + cout << "Имя студента:" << endl; cout << " Адрес: " << static_cast(students[1].name) << endl; cout << " Смещение: " << offsetof(Student, name) << endl; cout << " Размер: " << sizeof(students[1].name) << " байт" << endl; @@ -91,7 +92,7 @@ int main() { cout << endl << endl; // Выводим адрес, смещение, размер поля года - cout << "Год:" << endl; + cout << "Год поступления:" << endl; cout << " Адрес: " << &students[1].year << endl; cout << " Смещение: " << offsetof(Student, year) << endl; cout << " Размер: " << sizeof(students[1].year) << " байт" << endl; @@ -114,13 +115,13 @@ int main() { // Выводим адрес, смещение, размер указателя на старосту cout << "Староста:" << endl; - cout << " Адрес: " << &students[1].leader << endl; + cout << " Адрес: " << &students[0].leader << endl; cout << " Смещение: " << offsetof(Student, leader) << endl; - cout << " Размер: " << sizeof(students[1].leader) << " байт" << endl; + cout << " Размер: " << sizeof(students[0].leader) << " байт" << endl; cout << " Шестнацатеричный формат: "; - students[1].print_hex(&students[1].leader, sizeof(students[1].leader)); + students[1].print_hex(&students[0].leader, sizeof(students[0].leader)); cout << endl << " Двоичный формат: "; - students[1].print_binary(&students[1].leader, sizeof(students[1].leader)); + students[1].print_binary(&students[0].leader, sizeof(students[0].leader)); cout << endl << endl; // все элементы массива в шестнадцатеричном виде с указанием соответствия блоков байт полям структур @@ -128,7 +129,7 @@ int main() { for (int i = 0; i < 3; i++) { cout << "Студент " << i << (students[i].leader == nullptr ? " (не староста)" : " (староста, лидер - ") << (students[i].leader == nullptr ? "нет лидера" : students[i].leader->name) << ")" << endl; - cout << " Все поля: "; + cout << " Все поля:\n "; students[i].print_hex(&students[i], sizeof(Student)); cout << endl; cout << " Имя: ";