Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [c]Non trovo l'errore - Ordinamento array di strutture

    Prima funzionava, poi ho aggiunto alla struct l'array indirizzo[SIZE] ma adesso quando vado ad eseguirlo dopo aver immesso i dati di input di da un errore e si chiude l'esecuzione.
    Chi mi aiuta. Vi prego è urgente!

    #include <stdio.h>
    #include<string.h>
    #include<conio.h>
    #define SIZE 100
    #define SIZEV 3
    typedef struct
    {
    char nome[SIZE];
    char cognome[SIZE];
    char indirizzo[SIZE];
    int telefono;
    } Persona;

    void caricaPersona ( Persona *p);
    void caricaVettore(Persona *p,int n);
    void ordinaVettore(Persona *p,int n);
    void stampaPersona (Persona p);
    void stampaVettore(Persona *p,int n);


    void caricaPersona(Persona *p)
    {
    char invio;
    printf("Nome:");
    gets(p->nome);
    printf("Cognome:");
    gets(p->cognome);
    printf("Indirizzo:");
    gets(p->indirizzo);
    printf("Telefono: 081\'");
    scanf("%d",&p->telefono);
    scanf("%c",&invio);

    }

    void caricaVettore(Persona *p,int n)
    {
    int i;
    for(i=0;i<n;i++)
    {
    caricaPersona(&p[i]);
    }
    }

    void ordinaVettore(Persona *p,int n)
    {
    int i,j,telefono;
    char buffer[SIZE];
    for(i=0;i<=n-1;i++)
    {
    for(j=i+1;j<=n;j++)
    {
    if(p[i].telefono>p[j].telefono)
    {
    strcpy(buffer,p[i].cognome);
    strcpy(p[i].cognome,p[j].cognome);
    strcpy(p[j].cognome,buffer);
    strcpy(buffer,p[j].nome);
    strcpy(p[j].nome,p[i].nome);
    strcpy(p[i].nome,buffer);
    strcpy(buffer,p[j].indirizzo);
    strcpy(p[j].indirizzo,p[i].indirizzo);
    strcpy(p[i].indirizzo,buffer);
    telefono=p[j].telefono;
    p[j].telefono=p[i].telefono;
    p[i].telefono=telefono;
    }
    }
    }
    }



    void stampaPersona(Persona p)
    {
    printf("Nome:%s \n Cognome:%s \n Indirizzo: %s\n Telefono':%d\n",p.nome,p.cognome,p.indirizzo,p.tel efono);
    }
    void stampaVettore(Persona *p,int n)
    {
    int i;
    for (i=0;i<n;i++)
    stampaPersona(p[i]);
    }
    main()
    {
    char ch;
    int i,j,eta;
    Persona p[SIZEV],buffer[SIZEV];
    caricaVettore(p,SIZEV);
    ordinaVettore(p,SIZEV);
    stampaVettore(p,SIZEV);
    system("PAUSE");
    return 0;
    ch=getch();
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481

    Re: [c]Non trovo l'errore - Ordinamento array di strutture

    Originariamente inviato da mariano.monaco
    Vi prego è urgente!
    Non c'è nulla di urgente in un forum ...

    L'ordinamento è sbagliato ... le correzioni in rosso

    codice:
    for(i=0; i<n-1; i++)
    {
        for(j=i+1; j<n; j++)
        {
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    scusami x l'urgente, era solo perchè è per un progetto da consegnare domani.
    Ti ringrazio infinitamente!!
    Grazie grazie grazie

  4. #4
    di questo programma devo dato un cognome, un nome e un domicilio, cercare il numero corrispondente
    usando la ricerca binaria ricorsiva. Qualcuno mi aiuta, non lo so fare

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Devi aprire un altro thread, dato che il problema non ha a che fare con quello indicato nel titolo di questo (pur essendo lo stesso programma ...).

    Inoltre, prova a proporre una soluzione su cui discutere dato che una "soluzione chiavi in mano" non penso la otterrai ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da oregon
    Devi aprire un altro thread, dato che il problema non ha a che fare con quello indicato nel titolo di questo (pur essendo lo stesso programma ...).

    Inoltre, prova a proporre una soluzione su cui discutere dato che una "soluzione chiavi in mano" non penso la otterrai ...
    Quoto: e prima di procedere con una nuova discussione, prendi visione del Regolamento Interno, specialmente il punto 6 che riguarda le modalità di posting del codice.

    Se non hai una soluzione da proporre, ma intendi richiederla completamente, posta nel forum "Offro Lavoro / Collaborazione".

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.