Advertisement
totobac

Untitled

Feb 27th, 2021
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.83 KB | None | 0 0
  1. #include<iostream>
  2. #include<math.h>
  3. const size_t MAX_NAME_LEN = 32;
  4. const size_t MAX_EGN_LEN = 11;
  5. const size_t MAX_COUNT = 5;
  6. //task2
  7. struct Student
  8. {
  9.     char name[MAX_NAME_LEN];
  10.     char egn[MAX_EGN_LEN];
  11.     int facNum;
  12.     float marks[MAX_COUNT];
  13.     //pair<char*, float> marks[MAX_COUNT];
  14. };
  15.  
  16.  
  17.  
  18. void initialize(Student& st) {
  19.     std::cin.getline(st.name, MAX_NAME_LEN);
  20.     std::cin.getline(st.egn, MAX_EGN_LEN);
  21.  
  22.     std::cin >> st.facNum;
  23.     for (size_t i = 0; i < MAX_COUNT; i++) {
  24.         std::cin >> st.marks[i];
  25.     }
  26.  
  27.     std::cout << std::endl;
  28. }
  29.  
  30.  
  31. void printStudent(const Student& st) {
  32.     std::cout << "Name: " << st.name << std::endl;
  33.     std::cout << "EGN: " << st.egn << std::endl;
  34.     std::cout << "Faculty number: " << st.facNum << std::endl;
  35.  
  36.     std::cout << "Marks: " << std::endl;
  37.  
  38.     for (size_t i = 0; i < MAX_COUNT; i++) {
  39.         std::cout << st.marks[i] << " ";
  40.     }
  41.  
  42.     std::cout << std::endl;
  43. }
  44.  
  45.  
  46. float averageMark(const Student& st) {
  47.     float sum = 0;
  48.  
  49.     for (size_t i = 0; i < MAX_COUNT; i++) {
  50.         sum += st.marks[i];
  51.     }
  52.  
  53.  
  54.     return sum / (float)MAX_COUNT;
  55. }
  56.  
  57.  
  58. void printAverageMarks(Student* students, size_t count) {
  59.  
  60.     std::cout << "Average marks: " << std::endl;
  61.  
  62.     for (size_t i = 0; i < count; i++) {
  63.         std::cout << averageMark(students[i]) << std::endl;
  64.     }
  65. }
  66.  
  67.  
  68. Student& getBestStudent(Student* students, size_t count)
  69. {
  70.     size_t currBestStudentIndex = 0;
  71.     float highestMark = averageMark(students[0]);
  72.  
  73.     for (int i = 1; i < count; i++)
  74.     {
  75.         float currAverageMark = averageMark(students[i]);
  76.  
  77.         if (currAverageMark > highestMark) {
  78.             highestMark = currAverageMark;
  79.             currBestStudentIndex = i;
  80.         }
  81.     }
  82.  
  83.     return students[currBestStudentIndex];
  84. }
  85.  
  86. int main()
  87. {
  88.    
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement