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?
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?