fork download
  1. #include <string>
  2. #include <iostream>
  3. #include <vector>
  4.  
  5. const int max_number_of_students=2;
  6. const int grades_count = 3;
  7. struct RecordBook // да, так будет зачетка
  8. {
  9. std::string last_name;
  10. int no;
  11. int grades[grades_count]; // раньше это называлось "ocenka"
  12. };
  13.  
  14. int main()
  15. {
  16. /*
  17.   Фамилия студента
  18.   Номер зачетки
  19.   Массив из 4 оценок
  20.   * Сортировка структур по фамилии или среднему баллу
  21.   * Удаление всех зачеток троечников
  22.   */
  23.  
  24. std::vector<RecordBook> box;
  25. RecordBook t;
  26.  
  27. for(int i = 0; i < max_number_of_students; i++)
  28. {
  29. std::cout << "Enter Last Name:" << std::endl;
  30. getline(std::cin, t.last_name);
  31.  
  32. std::cout << "Enter Nomer:" << std::endl;
  33. std::cin >> t.no;
  34. std::cout << "Enter grades (count:"<< grades_count <<")" << std::endl;
  35. for (int j = 0; j < grades_count; j++)
  36. std::cin >> t.grades[j];
  37.  
  38. std::cin.ignore(50, '\n');
  39. box.push_back(t);
  40. }
  41.  
  42. //- Cортировка по фамилии
  43. // Здесь хорошо бы применить стандартный алгоритм сортировки, но боюсь это будет перебор.
  44. for(size_t i=box.size()-1; i>0 ; i--)
  45. for(size_t j=0; j<i ; j++)
  46. if(box[ j ].last_name > box[ j+1 ].last_name)
  47. {
  48. std::swap(box[j], box[j+1]);
  49. // три строки ниже - олд-скул вариант.
  50. //RecordBook t = box[j];
  51. //box[j] = box[j+1];
  52. //box[j+1] = t;
  53. }
  54.  
  55. for(size_t i=0; i<box.size(); i++)
  56. {
  57. bool is_find = false;
  58. for (int j = 0; j < grades_count; j++) {
  59. if (box[i].grades[j] == 3) {
  60. is_find = true;
  61. break;
  62. }
  63. }
  64. if (is_find)
  65. continue;
  66. std::cout << box[i].last_name << std::endl << box[i].no << std::endl;
  67.  
  68. for(int j=0; j<grades_count; j++)
  69. std::cout << box[i].grades[j] << " ";
  70. std::cout << std::endl;
  71. }
  72.  
  73. return 0;
  74. }
Success #stdin #stdout 0s 3436KB
stdin
Standard input is empty
stdout
Enter Last Name:
Enter Nomer:
Enter grades (count:3)
Enter Last Name:
Enter Nomer:
Enter grades (count:3)

134515089
-1218059292 -1216698920 134523540 

134515089
-1218059292 -1216698920 134523540