Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Perchè si blocca?!
Forum - C/C++ - Perchè si blocca?!

Avatar
mycronapoli (Normal User)
Newbie


Messaggi: 17
Iscritto: 28/01/2011

Segnala al moderatore
Postato alle 17:40
Lunedì, 09/05/2011
Ragazzi... il programma in fase di compilazione non mi da nè errori, nè warnings.
Ma allora perchè una volta compilato quando lo eseguo si blocca?
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. struct persona{char *nome;
  6.                char *cognome;};
  7. typedef struct persona id;
  8. struct partecipante{id *utente;
  9.                     unsigned short codice;};
  10. typedef struct partecipante Partecipante;
  11.  
  12. void ordina_conc(struct partecipante concorrente[], int n);
  13. void val_min_ind(struct partecipante concorrente[],int n, int *indice_min);
  14. void scambiare_ST(struct partecipante *a, struct partecipante *b);
  15. int main()
  16. {
  17.     Partecipante concorrente[2];
  18.     concorrente[0].utente->nome="Mirko";
  19.     concorrente[0].utente->cognome="Zammartino";
  20.     concorrente[0].codice=001;
  21.     concorrente[1].utente->nome="Rita";
  22.     concorrente[1].utente->cognome="Arpaia";
  23.     concorrente[1].codice=002;
  24.     printf("Concorrenti ordinati alfabeticamente:\n");
  25.     ordina_conc(concorrente, 2);
  26.     printf("Hello world!\n");
  27.     return 0;
  28. }
  29.  
  30. void ordina_conc(Partecipante concorrente[], int n)
  31. {
  32.     int i, indice_min;
  33.     for(i=0;i<n-1;i++)
  34.     {
  35.         val_min_ind(&concorrente[i],n-1, &indice_min);
  36.         scambiare_ST(&concorrente[i],&concorrente[indice_min+i]);
  37.     }
  38. }
  39.  
  40. void val_min_ind(Partecipante concorrente[],int n, int *indice_min)
  41. {
  42.     char *min_array;
  43.     int i;
  44.     min_array= concorrente[0].utente->cognome;
  45.     puts("Copia effettuata\n");
  46.     *indice_min=0;
  47.     for (i=1;i<n;i++)
  48.     {
  49.         if(strcmp(concorrente[i].utente->cognome,min_array)<0)
  50.         {
  51.             min_array=concorrente[i].utente->cognome;
  52.             *indice_min=i;
  53.             puts("Scambio effettuato.\n");
  54.         }
  55.     }
  56. }
  57.  
  58. void scambiare_ST(Partecipante *a, Partecipante *b)
  59. {
  60.     Partecipante temp;
  61.     temp=*a;
  62.     *a=*b;
  63.     *b=temp;
  64. }


Aiutatemi vi prego!!!! Sono disperatissimo!:d:d:d

PM
Avatar
Peppe91 (Member)
Rookie


Messaggi: 41
Iscritto: 09/04/2011

Up
1
Down
V
Segnala al moderatore
Postato alle 19:42
Lunedì, 09/05/2011
Sostituisci la dichiarazione id *utente con id *utente[2] ;)

PM