#include <stdio.h>
#include <string.h>
#define N_CORSE 100
#define MAX_STR 100
/*a) Realizzare un sottoprogramma che riceve come parametri un array di linee lb, la sua dimensione
dim e restituisce un intero come risultato. Per ciascuna corsa di ciascuna linea, il sottoprogramma
calcola la percentuale di riempimento (quanti dei posti totali sono occupati), quindi calcola la media
della percentuale di riempimento per ciascuna linea, ed infine identifica qual è la linea con la più bassa
percentuale media di riempimento restituendo il numero della linea.
b) Scrivere uno stralcio di main in cui viene dichiarato un array di 10 elementi di tipo t_linea e
qualsiasi altra variabile eventualmente necessaria. OMETTENDO la parte di acquisizione dei dati, il
programma esegue la chiamata al sottoprogramma precedentemente definito e visualizza il risultato.
*/
typedef struct{
char tipo_autobus[MAX_STR+1];
int numero_corsa;
int numero_passengeri;
int posti_totali;
} t_corsa;
typedef struct{
t_corsa corse[N_CORSE];
int n_corse;
char partenza[MAX_STR+1];
char arrivo[MAX_STR+1];
int numero_linea;
} t_linea;
int parteA(t_linea lb[], int dim){
int i;
int j;
int linea;
float media=0;
float temp=0;
linea=lb[0].numero_linea;
for(i=0; i<dim; i++){
for(j=0;j<lb[i].n_corse;j++){
media=(lb[i].corse[j].numero_passengeri*100)/(lb[i].corse[j].posti_totali);
if(media<temp){
linea=lb[i].numero_linea;
}
temp=media;
media=0;
}
}
return linea;
}
int main(){
int dim=2;
t_linea lb[dim];
int i=0;
int j=0;
for(i=0;i<dim;i++){
printf("numero di linea? ");
scanf("%d", &lb[i].numero_linea);
printf("numero di corse della %d linea ? ", i+1);
scanf("%d", &lb[i].n_corse);
for(j=0;j<lb[i].n_corse;j++){
printf("numero di posti totali? ");
scanf("%d", &lb[i].corse[j].posti_totali);
printf("numero di passeggeri totali? ");
scanf("%d", &lb[i].corse[j].numero_passengeri);
}
}
printf("\n");
printf("il numero di linea con una percentuale piu' bassa e': %d", parteA(lb,dim));
return 0;
}
ho creato questo codice seguendo il vostro consiglio di compilare, a me funziona... ma magari ho fatto qualche errore concettuale.
ho messo dim=2 per fare una prova pratica del programma, così ero più veloce.