Testo dell'esercizio
Una gara di sci e' disputata in due manche e al termine delal seconda si sommano i tempi per determinare l'atleta che ha vinto al gara.
I vettori TEMPI1 e TEMPI2 contengono i tempi di gara di ciscuna delle due manches, mentre il vettore ATLETI contiene il nome delgi atleti.
Prevedere un'applicazione che permetta di:
1) visualizzare la classifica finale (piazzamento, nome, tempo totale) in ordine decrescente di tempo
2) dato n input il nome di un atleta visualiizzare i tempi delle due manches, il tempo totale e il suo piazzamento. Emettere opportuna segnalazione di errore se il nome dell'atleta non esiste nell'array
3) prevedere la segnalazione del controllo antidoping nella seconda manches per 10 atleti.
Con una funzione random e' determinata la posizione dell'atleta che deve essere controllato.Poi si richiede da input il risultato dell'analisi che puo' essere grave, lieve, negativo. Se e' grave vengono aggiunti 5 secondi di penalita' al tempo totale, se e' lieve solamente 1.5. Aggiornare l'array TEMPI2.
mostra soluzione
019 | char atleti[MAX],nome,risultato_c; |
020 | int r,i,j,ordinati[MAX],k,p,aux,controllo; |
021 | float tempi1[MAX],tempi2[MAX],tempi_t[MAX],n; |
028 | printf ( "inserire il numero di atleti : " ); |
030 | } while (r < 1 || r >= MAX); |
037 | printf ( "inserisci il nome del'altleta numero %d : " ,i+1); |
039 | scanf ( "%c" ,&atleti[i]); |
045 | printf ( "inserisci il tempo della prima manche dell'atleta %c : " ,atleti[i]); |
046 | scanf ( "%f" ,&tempi1[i]); |
052 | printf ( "inserisci il tempo della seconda manche dell'atleta %c : " ,atleti[i]); |
053 | scanf ( "%f" ,&tempi2[i]); |
061 | tempi_t[i] = tempi1[i]+tempi2[i]; |
069 | if (tempi_t[ordinati[i]]<tempi_t[ordinati[i+1]]){ |
071 | ordinati[i] = ordinati[i+1]; |
079 | printf ( "classifica :\n" ); |
081 | printf ( "%d\t%c\t%f\n" ,i+1,atleti[ordinati[i]],tempi_t[ordinati[i]]); |
085 | printf ( "inserire il nome di un atleta : " ); |
090 | while (i < r && atleti[i] != nome) |
093 | if (atleti[i] == nome){ |
095 | while (i != ordinati[j]) |
098 | printf ( "alteta %c : tempo manche 1 = %f, tempo manche 2 = %f; tempo totale = %f; piazzamento = %d\n" ,nome,tempi1[i],tempi2[i],tempi_t[i],j+1); |
100 | printf ( "ERRORE : l'altleta inserito non esiste\n" ); |
106 | controllo = rand ()%r; |
108 | printf ( "inserire il risultato del controllo antidoping all'atleta %c(g = grave, l = lieve, n = negativo) : " ,atleti[controllo]); |
110 | scanf ( "%c" ,&risultato_c); |
111 | if (risultato_c == 'g' ) |
112 | tempi2[controllo] += 5; |
113 | else if (risultato_c == 'l' ) |
114 | tempi2[controllo] += 1.5; |
Testi Consigliati:
Il linguaggio C. Principi di programmazione e manuale di riferimento. Ediz. MyLab. Con Contenuto digitale per download e accesso on line
C guida alla programmazione: Conoscere lo standard C11 dalle basi del linguaggio alle direttive del preprocessore (Programmare con C Vol. 1)
Programmazione in C
torna