Advertisement
Guest User

Burse Studenti

a guest
Aug 22nd, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.80 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <iomanip>
  5.  
  6. struct Student{
  7.     char nume[100];
  8.     std::vector<int> note;
  9.     float medie;
  10.     bool integralist;
  11. };
  12.  
  13. float calcMedie(std::vector<int> note, int n){
  14.     float medie;
  15.     int suma = 0;
  16.     for(unsigned int i = 0; i < n; i++){
  17.         suma+=note[i];
  18.     }
  19.     medie = suma / n;
  20.     return medie;
  21. }
  22.  
  23. bool statut(std::vector<int> note, int n){
  24.     bool status = true;
  25.     for(unsigned int i = 0; i < n; i++){
  26.         if(note[i] < 5){
  27.             status = false;
  28.             break;
  29.         }
  30.     }
  31.     return status;
  32. }
  33.  
  34. bool wayToSort(const Student &lhs, const Student &rhs){
  35.     return lhs.medie > rhs.medie;
  36. }
  37.  
  38. int main(){
  39.     int m, n, p;
  40.     int burseAcordate = 0;
  41.     std::cin >> m >> n >> p;
  42.    
  43.     std::vector<Student> studenti(m);
  44.    
  45.     //fill students with marks and average
  46.     for(unsigned int i = 0; i < m; i++){
  47.         std::cin >> studenti[i].nume;
  48.         for(unsigned int j = 0; j < n; j++){
  49.             std::cin >> studenti[i].note[j];
  50.         }
  51.         studenti[i].medie = calcMedie(studenti[i].note, n);
  52.         studenti[i].integralist = statut(studenti[i].note, n);
  53.     }
  54.    
  55.     std::cout << "Data filled" << std::endl;
  56.    
  57.     //sort by medie
  58.     std::sort(studenti.begin(), studenti.end(), wayToSort);
  59.    
  60.  
  61.     //give bursa to first p integralsiti
  62.     for(unsigned int i = 0; i < m; i++){
  63.         if(studenti[i].integralist && studenti[i].medie > 8.00 && p > 0){
  64.             burseAcordate++;
  65.             p--;
  66.             if(p == 0){
  67.                 break;
  68.             }
  69.         }
  70.     }
  71.    
  72.     std::cout << burseAcordate << std::endl;
  73.     std::cout << studenti[0].nume << " " << std::fixed << std::setprecision(2) << studenti[0].medie;  
  74.    
  75.     return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement