Concetti Chiave
- Il programma gestisce una lista di partecipanti a una gara, memorizzando pettorale, nome e tempo di gara.
- La funzione ChiediDimensione() chiede all'utente di inserire il numero di partecipanti, assicurandosi che non superi il valore massimo consentito.
- CaricaTabella() raccoglie i dati per ogni partecipante, calcolando anche il tempo totale in secondi per facilitarne l'ordinamento.
- La funzione Ordina() ordina i partecipanti in base al tempo totale impiegato, utilizzando un algoritmo di ordinamento semplice.
- StampaTabella() visualizza la lista ordinata dei partecipanti con i relativi tempi formattati in ore, minuti e secondi.
#include
#include
#include
using namespace std;
const int MAX=100;
struct t {
int hh, mm, ss;
int TotSecondi;
};
struct partec {
int pettorale;
string nome;
t tempo;
};
int ChiediDimensione();
void CaricaTabella(partec T[], int d);
void Scambia(partec& a, partec& b);
void Ordina(partec T[], int d);
void StampaTabella(partec T[], int d);
int main()
{
int dim;
partec tab[MAX];
dim=ChiediDimensione();
CaricaTabella(tab,dim);
Ordina(tab,dim);
StampaTabella(tab,dim);
system("pause");
return 0;
}
int ChiediDimensione()
{
int d;
do{
cerr
cin>>d;
} while (dMAX);
return d;
}
void CaricaTabella(partec T[], int d)
{
for (int i=0; i
cerr
cin>>T.nome;
cerr
cin>>T.tempo.hh;
cerr
cin>>T.tempo.mm;
cerr
cin>>T.tempo.ss;
T.tempo.TotSecondi = T.tempo.hh*360 + T.tempo.mm*60 + T.tempo.ss;
}
}
void Scambia(partec& a, partec& b)
{
partec comodo;
comodo=a;
a=b;
b=comodo;
}
void Ordina(partec T[], int d)
{
for (int i=0; i
Scambia(T, T[j]);
}
}
}
void StampaTabella(partec T[], int d)
{
cout
for (int i=0; i
.nome
.tempo.hh
.tempo.mm
.tempo.ss
}