Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include "Estudiant.hh"
- using namespace std;
- void p(const vector<Estudiant>& v, vector<Estudiant>& w) {
- /*Simplifica les notes d'un vector d'Estudiants triant la nota mes alta de cadascun d'ells*/
- w.push_back(v[0]); //assignem el primer DNI a la primera posicio del vector resultat
- int j = 0; //usat per posicio w[0]
- for (int i = 1; i < v.size(); ++i) {
- if (v[i].consultar_DNI() != w[j].consultar_DNI()) {
- w.push_back(v[i]);
- j += 1; //per accedir a les seguents posicions, ja que el vector "w" es mes llarg
- }
- else { /*si es el mateix DNI que l'anterior (recordar: els estudiants iguals van consecutivament) comprovem si
- aquest te una major nota que l'anterior */
- bool bv = v[i].te_nota(); //te nota valida?
- bool bw = w[j].te_nota(); //te nota valida?
- if (bv and bw) { //si els dos vectors tenen notes valides comparar quina es mes gran
- if ((v[i].consultar_nota()) > (w[j].consultar_nota())) {
- w[j].modificar_nota(v[i].consultar_nota()); //si la nota actual a "w" es major la canviem per la nova de "v"
- }
- }
- else if (bv and not bw) { //si l'actual nota d'aquest estudiant a "w" es NP la canviem per una de valida de "v"
- w[j].afegir_nota(v[i].consultar_nota());
- }
- }
- }
- }
- int main() {
- int n;
- cin >> n;
- vector<Estudiant> v(n);
- for (int i = 0; i < n; ++i) v[i].llegir();
- vector<Estudiant> w;
- p(v,w);
- for (int i = 0; i < w.size(); ++i) w[i].escriure();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement