Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- const uint8_t marksCount{ 3 };
- struct Student
- {
- uint32_t id;
- char* name;
- uint8_t marks[marksCount];
- };
- void initStudent(Student& stud, uint32_t id, const char* name, const uint8_t* marks)
- {
- stud.id = id;
- int nameLen;
- nameLen = strlen(name) + 1;
- stud.name = new char[nameLen];
- strcpy_s(stud.name, nameLen, name);
- for (int i{ 0 }; i < marksCount; ++i)
- {
- stud.marks[i] = marks[i];
- }
- }
- float getAvgGrade(const Student& stud)
- {
- int sum{ 0 };
- for (int i{ 0 }; i < marksCount; ++i)
- {
- sum += stud.marks[i];
- }
- return ((float)sum / marksCount);
- }
- void printStudent(const Student& stud, bool detail = false)
- {
- std::cout << "Student: " << stud.name << "\nId: " << stud.id << '\n';
- if (detail)
- {
- for (int i{ 0 }; i < marksCount; ++i)
- {
- std::cout << "Mark# " << i << " - " << (int)stud.marks[i] << '\n';
- }
- }
- std::cout << "Average grade: " << getAvgGrade(stud) << '\n';
- }
- int main()
- {
- //Student stud1;
- //stud1.id = 42;
- //stud1.name = new char[15]{ "Vasilij" };
- //stud1.marks[0] = 7;
- //stud1.marks[1] = 9;
- //stud1.marks[2] = 11;
- //std::cout << "Student: " << stud1.name << "\nId: " << stud1.id << '\n';
- //int sum{ 0 };
- //for (int i{ 0 }; i < marksCount; ++i)
- //{
- // std::cout << "Mark# " << i << " - " << (int)stud1.marks[i] << '\n';
- // sum += stud1.marks[i];
- //}
- //std::cout << "Average grade: " << ((float)sum / marksCount) << '\n';
- //delete[] stud1.name;
- /*Student stud1;
- uint8_t marks[marksCount]{ 7,9,11 };
- initStudent(stud1,42, "Vasilij", marks);
- printStudent(stud1);*/
- const int studentsCount{ 3 };
- Student students[studentsCount];
- initStudent(students[0], 42, "Vasilij", new uint8_t[marksCount] {7,9,11});
- students[0].id = -17;
- students[0].marks[0] = -23;
- students[0].marks[1] = 57;
- students[0].name = nullptr;
- initStudent(students[1], 67, "Petr", new uint8_t[marksCount]{ 10,8,12 });
- initStudent(students[2], 33, "Ignat", new uint8_t[marksCount]{ 11,11,6 });
- for (int i{ 0 }; i < studentsCount; ++i)
- {
- printStudent(students[i],true);
- std::cout << '\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement