Testo dell'esercizio
Data una matrice riportante le relazioni tra alberghi e servizi offerti (con una X all'incrocio tra la riga dell'albergo e la colonna del servizio se l'albergo offre tale servizio) e due vettori con le descrizioni degli alberghi e dei servizi, scrivere un programma che, tramite menu, permetta di stampare:
1) l'elenco di tutti gli alberghi che offrono n determinato servizio inserito da input (controllare l'esistenza del servizio);
2) l'elenco di tutti i servizi e per ognuno di essi l'elenco degli alberghi che lo offrono;
3) l'elenco di tutti i servizi offerti da un albergo richiesto da input (controllare l'esistenza dell'albergo)
4) il mome dell'albergo che offre il maggior numero di servizi
mostra soluzione
015 | char mat[MAX][MAX],alberghi[MAX],servizi[MAX],servizio,albergo; |
016 | int r,c,j,i,scelta,mag=0,pos_mag=0,somma=0; |
023 | printf ( "inserire il numero degli alberghi : " ); |
025 | printf ( "inserire li numero dei servizi : " ); |
027 | } while (r<1 || r>=MAX || c<1 || c>=MAX); |
033 | printf ( "inserire la descrizione dell'albergo numero %d : " ,i+1); |
035 | scanf ( "%c" ,&alberghi[i]); |
039 | printf ( "inserire la descrizione del servizio numero %d : " ,i+1); |
041 | scanf ( "%c" ,&servizi[i]); |
046 | printf ( "inserire X se e` presente il servizio %c nell'albergo %c : " ,servizi[j],alberghi[i]); |
048 | scanf ( "%c" ,&mat[i][j]); |
052 | printf ( "1) elenco degli alberghi che offrono un determinato servizio\n2) l'elenco di tutti i servizi e degli alberghi che li offrono\n3) l'elenco dei servizi offeri da un determinato albergo\n4) il nome dell'albergho che offre il maggior numeor di servizi\nscelta : " ); |
055 | } while (scelta < 1 || scelta > 4); |
062 | printf ( "inserire un servizio : " ); |
064 | scanf ( "%c" ,&servizio); |
068 | while (servizi[j] != servizio && j<c) |
070 | if (servizi[j] == servizio){ |
071 | printf ( "il servizio %c è offerto da : " ,servizio); |
074 | printf ( "%c, " ,alberghi[i]); |
077 | printf ( "il servizio scelto non e` presente\n" ); |
082 | printf ( "gli alberghi che offrono il servizio %c sono : " ,servizi[j]); |
085 | printf ( "%c, " ,alberghi[i]); |
091 | printf ( "inserire un albergo : " ); |
093 | scanf ( "%c" ,&albergo); |
097 | while (alberghi[i] != albergo && i<r) |
099 | if (alberghi[i] == albergo){ |
100 | printf ( "l'albergo %c offre i seguenti servizi : " ,albergo); |
103 | printf ( "%c, " ,servizi[j]); |
106 | printf ( "l'albergo scelto non e` presente\n" ); |
122 | printf ( "l'abergo che offre piu` servizi e` : %c\n" ,alberghi[pos_mag]); |
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