Skip to content

Instantly share code, notes, and snippets.

@ProfAndreaPollini
Created January 28, 2025 08:52
Show Gist options
  • Save ProfAndreaPollini/57fb25222f1d529b442fa206f5ec00ab to your computer and use it in GitHub Desktop.
Save ProfAndreaPollini/57fb25222f1d529b442fa206f5ec00ab to your computer and use it in GitHub Desktop.
esericioz sulle struct ( 28 gennaio 2025)
#include <iostream>
#include <vector>
// registrazione = nome, cognome, punteggio
struct registrazione {
std::string nome;
std::string cognome;
int punteggio;
};
using registrazioni_t = std::vector<registrazione>;
void inserimento_registrazione(registrazioni_t &registrazioni) {
registrazione r;
std::cout << "Inserisci registrazione " << std::endl;
std::cin >> r.nome >> r.cognome >> r.punteggio;
registrazioni.push_back(r);
}
void stampa_giocatori_prima_posizione(const registrazioni_t &registrazioni) {
int punteggio_massimo = registrazioni[0].punteggio;
for (int i = 1; i < registrazioni.size(); i++) {
if (registrazioni[i].punteggio>punteggio_massimo) {
punteggio_massimo = registrazioni[i].punteggio;
}
}
for (int i = 0; i < registrazioni.size(); i++) {
if (registrazioni[i].punteggio == punteggio_massimo) {
std::cout << registrazioni[i].nome << "\t";
std::cout << registrazioni[i].cognome << "\t";
std::cout << registrazioni[i].punteggio << std::endl;
}
}
}
void stampa_giocatori_prima_posizione2(const registrazioni_t &registrazioni) {
int punteggio_massimo = registrazioni[0].punteggio;
std::vector<int> posizioni={0};
for (int i = 1; i < registrazioni.size(); i++) {
if (registrazioni[i].punteggio>punteggio_massimo) {
posizioni.clear();
posizioni.push_back(i);
punteggio_massimo = registrazioni[i].punteggio;
} else if (registrazioni[i].punteggio == punteggio_massimo) {
posizioni.push_back(i);
}
}
for (auto i: posizioni) {
std::cout << registrazioni[i].nome << "\t";
std::cout << registrazioni[i].cognome << "\t";
std::cout << registrazioni[i].punteggio << std::endl;
}
}
int main() {
registrazioni_t registrazioni;
int scelta = 0;
do {
std::cout << "1- inserisci registrazione\n";
std::cout << "2- stampa giocatori in prima posizione\n";
std::cout << "Inserisci una scelta: ";
std::cin >> scelta;
switch (scelta) {
case 1:
inserimento_registrazione(registrazioni);
break;
case 2:
stampa_giocatori_prima_posizione(registrazioni);
break;
case 3:
stampa_giocatori_prima_posizione2(registrazioni);
break;
}
} while (scelta !=0);
std::cout << "Hello, World!" << std::endl;
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment