Come scrivere un programma C Dato un elenco ( matrice) delle persone che partecipano ad un concorso , ordinare l'elenco in ordine alfabetico per l'ultimo campo nome. La struttura che identifica il partecipante è la persona struct { char nome * ; char * name ; } ; typedef struct persona id ; struct { id partecipante * utente ; codice unsigned short ; } ;
risposta:
- /* Dato un elenco (array) di persone partecipanti a un concorso, ordinare l’elenco in
- ordine alfabetico in base al campo cognome. La struttura che identifica il partecipante è
- struct persona {char *nome; char *cognome;};
- typedef struct persona id;
- struct partecipante {id *utente; unsigned short codice; };
- */
- struct persona{
- char* nome;
- char* cognome;
- };
- typedef struct persona id;
- struct partecipante{
- id utente;
- unsigned short codice;
- };
- typedef struct partecipante partecipante;
- // la procedura scambia due partecipanti
- void Scambio(partecipante* a, partecipante* b)
- {
- partecipante tmp;
- tmp = *a;
- *a = *b;
- *b = tmp;
- return;
- }
- int main()
- {
- int i;
- int ult_scambio;
- int fine_ord;
- int n=3;
- fine_ord=n-1;
- partecipante partecipante[100];
- partecipante[0].utente.cognome="Lee";
- partecipante[0].utente.nome="Luca";
- partecipante[0].codice = 8376;
- partecipante[1].utente.cognome="Scorre";
- partecipante[1].utente.nome="Gina";
- partecipante[1].codice = 8566;
- partecipante[2].utente.cognome="Berlusconi";
- partecipante[2].utente.nome="Silvio";
- partecipante[2].codice = 834;
- while (fine_ord!=0)
- { // Se non ci sono più elementi da scambiare porto ultimo scambio a 0
- // Darà il suo valore a fine_ord e usciremo dal while
- ult_scambio=0;
- // Controllo tutti gli elementi della struct
- for (i=0; i<fine_ord; i++)
- { // Se il partecipante di indice I è alfabeticamente maggiore del partecipante di indice I+1
- if (strcmp(partecipante[i].utente.cognome, partecipante[i+1].utente.cognome) > 0)
- { // Scambio i dati
- Scambio(&partecipante[i], &partecipante[i+1]);
- // E porto l'ultimo scambio effettuato a I
- ult_scambio=i;
- }
- } // Riporto la I a ultimo scambio, se l'if non si verifica più, nella prossima iterazione
- // fine_ord avrà il valore 0
- fine_ord=ult_scambio;
- }
- // Stampo infine l'array ordinato
- for (i=0;i<n;i++) {
- puts(partecipante[i].utente.cognome);
- }
- }
Learn More :
Italian
- C del programma: si assume che B è un array di n> 0 cifre binarie, la seguente funzione calcola il valore decimale rappresentato da b in forma binaria
- C Program Problem's Solution For General Hospital
- Sviluppare una function C che, dati come parametri di input un array di char e il suo size, determina e restituisce come parametro di un dato logico che indica se il testo nell’array è un pangramma, ovvero è un testo che contiene, almeno una volta, tutte le 21 lettere dell’alfabeto italiano.
- Sviluppare una function C che, dati come parametri di input un array di char e il suo size
- Sviluppare una funzione C che , dato come parametri di ingresso un array di char e la sua dimensione
- Scrivere un programma C per simulare immettere il PIN per il telefono .
- C Programma Due giocatori sfida lanciando un " dado truccato . " Il dado ha Integer gamma [ 5 , 15 ] .
- Scrivere un programma C che: Crea un processo figlio, stampa il messaggio “In attesa” ed attende la terminazione del figlio.
- Scrivere un programma C in cui un processo crea un processo figlio
- Realizzare un programma C e Posix sotto Linux che con l'uso dei semafori Posix sincronizzi un processo padre
- Allocare una matrice dinamicamente di dimensione NxN dove n è un numero pari, inserito come input al programma ( argv ).
- C Programma per convertire la stringa in un intero
- C programma per trovare posizione del punto di coordinate Aereo