csansoon

X73814 Simplificació d'un vector d'estudiants agrupats

Feb 22nd, 2019
281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.00 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include "Estudiant.hh"
  5. using namespace std;
  6.  
  7. vector <Estudiant> llegir_notes() {
  8.     int n;
  9.     cin >> n;
  10.     vector<Estudiant> vin(n);
  11.     for (int i=0; i<n; ++i) vin[i].llegir();
  12.     return vin;
  13. }
  14.  
  15. vector <Estudiant> simplificar_notes(const vector <Estudiant>& vin) {
  16.     vector<Estudiant> vout;
  17.     for (int i=0; i<vin.size(); ++i) {
  18.         if (i==0 or (vin[i].consultar_DNI() != vin[i-1].consultar_DNI())) vout.push_back(vin[i]);
  19.         else if (vin[i].te_nota()){
  20.             if ((not vout[vout.size()-1].te_nota()) or vout[vout.size()-1].consultar_nota() < vin[i].consultar_nota())
  21.                 vout[vout.size()-1] = vin[i];
  22.         }
  23.     }
  24.     return vout;
  25. }
  26.  
  27. void escriure_notes(const vector <Estudiant>& vout) {
  28.     for (int i=0; i<vout.size(); ++i) vout[i].escriure();
  29. }
  30.  
  31.  
  32.  
  33.  
  34. int main() {
  35.     vector <Estudiant> vin = llegir_notes();
  36.     vector <Estudiant> vout = simplificar_notes(vin);
  37.     escriure_notes(vout);
  38. }
Advertisement
Add Comment
Please, Sign In to add comment