Ottimizzazione di un programma

di il
1 risposte

Ottimizzazione di un programma

Ciao a tutti, sono nuovo nel forum (sono uno studente al 4° anno e frequento una scuola per periti informatici), per puro diletto ho fatto questo programmino... vi posto la consegna e la codifica che ho fatto e vorrei sapere se secondo voi se come ottimizzazione (numero di righe) è accettabile o faccio pena e se secondo voi il metodo che ho usato è quello migliore:

Traccia: Ci sono 5 concorrenti ognuno dei quali partecipa a 6 prove (ottenendo un punteggio per ogni prova). Fare la classifica di chi vince la prima prova, la seconda etc.

Codice:
#include <iostream>
using namespace std;
#define con 5 //concorrenti
#define pro 6 //prove
int main ()
{
    typedef struct 
    {
            char nome[20],cognome[20];
            int punteggio[pro];
    } tab;
    typedef struct
    {
            char nome[20],cognome[20];
            int punteggio;
    } clas;
    typedef struct
    {
            clas classificato[con];
    } ris;
        
    int i=0, p, mag=0, pmag=0, x=0;
    tab tabella[con];
    ris risultati[pro];
    while (i<con) //inserimento dati
    {
          p=0;
          cout<<"CONCORRENTE "<<i+1<<endl;
          cout<<endl<<"Nome: ";
          cin>> tabella[i].nome;
          cout<<endl<<"Cognome: ";
          cin>> tabella[i].cognome;
          while (p<pro)
          {
                cout<<endl<<"Punteggio prova "<<p+1<<" : ";
                cin>>tabella[i].punteggio[p];
                p++;
          }
          i++;
    }
    p=0;
    while (p<pro) //calcolo classifica
    {
               x=0;
               while (x<con)
               {
                     mag=0;
                     pmag=0;
                     i=0;
                     while (i<con) //a fine ciclo mag=numero concorrente con punteggio maggiore
                     {
                           if (tabella[i].punteggio[p]>pmag)
                           {
                                                     mag=i;
                                                     pmag=tabella[i].punteggio[p];
                           }
                           i++;
                     }
                     risultati[p].classificato[x].nome=tabella[mag].nome;
                     risultati[p].classificato[x].cognome=tabella[mag].cognome;
                     risultati[p].classificato[x].punteggio=tabella[mag].punteggio[p];
                     x++;
               }
               p++;
    }
    p=0;
    while (p<pro) //stampa classifiche
    {
          x=0;
          while (x<con)
          {
                cout<<"PROVA "<<p+1<<" :"<<endl;
                cout<<x+1<<"o classificato: "<<risultati[p].classificato[x].nome<<" "<<risultati[p].classificato[x].cognome<<" con "<<risultati[p].classificato[x].punteggio<<" punti."<<endl;
                x++;
          }
          p++;
    }
    system("PAUSE");
    return 0;
}

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte