PDA

View Full Version : [C++] Esercizio Vettori Paralleli


biquidus
27-09-2011, 17:50
- Sviluppare un programma che consenta di inserire i nominativi e i voti di una singola materia di una classe scolastica. Consentire ad un utente di chiedere in output:
1) La lista in ordine alfabetico con i voti;
2) Dato in input il nome dell'alunno, comunicare il voto.
Utilizzare funzioni.

Io ho realizzato la fase di 'ordinamento'. Però non riesco a risolver eil punto '2'.. mi dareste una manco? Di sotto sarà riportato il sorgente, uhm.. io uso istruzioni 'semplici' perchè studio ancora in un Tecnico Industriale al 4° anno, quindi oltre la programmazione strutturata non conosco altri metodi.

void ordina (int voti[], char nomi[][20], int num) {
char scambio1 [20];
int scambio2, i, j;
for (i=1;i<num;i++) {
for (j=i+1;j<num;j++) {
if (strcmp(nomi[i], nomi[j]) > 0) {
strcpy (scambio1, nomi[j]);
strcpy (nomi[j], nomi[i]);
strcpy (nomi[i], scambio1);
scambio2=voti[j];
voti[j]=voti[i];
voti[i]=scambio2;
}
}
}
return;
}


Come posso realizzare il punto 2? E che parametri dovrei passare al chiamante?

biquidus
27-09-2011, 21:43
Up?

Floris
27-09-2011, 21:47
int get_vote(int voti[], char nomi[][20], int num, char name[]){
for(int i=0, i<num, i++){
if(strcmp(nomi[i],name)==0)
return voti[i];
}
}

starfred
28-09-2011, 08:41
C'è un errore nel primo for. (Non ti dico quale perché l'esercizio è tuo :) )

krisis99
28-09-2011, 13:34
Se sei al quarto dovresti conoscere almeno le struct, o sbaglio?? puoi semplificarti di molto la vita utilizzando una struct con due campi, voto e nome o addirittura usare una comodissima pair che altro non è che una struct a due campi... poi questi sono consigli...

comunque ogni array o vector che sia parte con indice del primo elemento pari a 0... quindi ricontrolla il primo ciclo ;)

per la funzione di ricerca quella postatati da Floris funziona, se la vuoi rendere più semplice puoi farla agire su variabili globali senza passarle come parametri i puntatori agli array ma solo il nome da cercare...anche se non è molto corretto in vista di programmi futuri extrascolastici...

P.S. se sei al quarto iscriviti alle olimpiadi italiane di informatica sono una competizione divertente e impari anche qualcosa di utile...www.olimpiadi-informatica.it fonte: esperienza personale!! ;)