El Cap de l’Àrea de Suport a la Presa de Decisions de la FIB disposa d’un llistat amb el DNI i el nom de certs estudiants de la UPC. D’altra banda, també disposa d’un llistat que enumera les notes que alguns estudiants de la UPC han tingut a certes assignatures de certs centres. Tots dos llistats es troben ordenats per DNI.
A partir d’aquests dos llistats, el Cap vol obtenir eficientment un llistat que desglossi les notes de cada estudiant, i la mitjana de les seves notes. El programa ja el té començat (vegeu lstlisting adjunt) i us ha demanat que l’acabeu.
L’entrada consisteix en els dos llistats, cadascun ordenat per DNI i sense línies repetides. El lstlisting que defineix les estructures de dades i el code que llegeix l’entrada ja el teniu implementat. No el toqueu!
La sortida és un llistat ordenat segons els DNIs que conté, per a cada estudiant, les seves notes i la mitjana d’aquestes. Les notes han d’aparèixer en el mateix ordre que en el segon llistat de l’entrada.
Fixeu-vos que, per a cada estudiant, cal indentar amb cinc espais la informació de les seves notes, i cal deixar una línia en blanc després. Observeu també que si un identificador apareix en un llistat d’entrada però no a l’altre, aquest no ha d’aparèixer al llistat de sortida.
#include <iostream>
#include <vector>
using namespace std;
struct Alumne {
int dni;
string nom;
};
struct Nota {
int dni;
string ass; // assignatura
string fac; // facultat
double nota;
};
void llegeix_alumnes(vector<Alumne>& alumnes) {
int m;
cin >> m;
alumnes = vector<Alumne>(m);
for (int i = 0; i < m; ++i) cin >> alumnes[i].dni >> alumnes[i].nom;
}
void llegeix_notes(vector<Nota>& notes) {
int n;
cin >> n;
notes = vector<Nota>(n);
for (int i = 0; i < n; ++i) {
cin >> notes[i].dni >> notes[i].ass >> notes[i].fac >> notes[i].nota;
}
}
int main() {
cout.setf(ios::fixed); // estableix el format dels reals
cout.precision(2); // per escriure les notes
vector<Alumne> alumnes;
vector<Nota> notes;
llegeix_alumnes(alumnes);
llegeix_notes(notes);
... // continueu el programa
}
Autoria: Professorat de P1
Generació: 2026-01-25T11:14:52.924Z
© Jutge.org, 2006–2026.
https://jutge.org