deny_1515
Ominide
1 min. di lettura
Vota

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.pettorale;
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 for (int j=i+1; j if (T.tempo.TotSecondi>T[j].tempo.TotSecondi)
Scambia(T, T[j]);
}
}
}
void StampaTabella(partec T[], int d)
{
cout for (int i=0; i cout .pettorale
.nome
.tempo.hh
.tempo.mm
.tempo.ss
}

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community