Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2015
    residenza
    Fiumicino
    Messaggi
    6

    Linguaggio C: Ordinamento vettore di strutture.

    Salve a tutti, ho cercato e ho letto diversi articoli riguardo a questa cosa ma non sono riuscito a capirne molto. Ho un array di strutture e quello che mi serve è di ordinare l'array in base a un parametro della struttura. Allego il sorgente in modo che sia tutto più chiaro. Il parametro da riespettare per l'ordinamento è int codice;

    codice:
    #include <stdio.h>#include <stdlib.h>
    
    
    void nuovo(int);
    void ordina();
    
    
    typedef struct {
        int codice;
        char titolo[20];
        char autore[20];
        int anno;
        char editore[20];
                   }lib;
    
    
    int const dim=100;
    lib libri[dim];
    int i=0,t;
    int main(){
        int a;
        char risp;
        printf("Che cosa vuoi fare?:\n");
        printf("1)Aggiungere un libro\n2)Ordinare i libri in base al codice\n");
        
        scanf("%d",&a);
        
        switch (a){
            case 1:
                do{
                nuovo(i);
                    i=i+1;
                    printf("Vuoi registrare un altro libro? %d\n",i);
                    scanf("%s",&risp);
                }while(risp=='s'||risp=='S');
                break;
                
            case 2: ordina() //ancora da creare!
                break;
        }
        return 0;
    }
    
    
    void nuovo (int i){
        FILE *fp;
        
        fp=fopen("ciao","ab");
        if ((fp = fopen("numeri.dat","wb"))==NULL)
            printf("errore");
        
        printf("Codice libro:");
        scanf("%d",&libri[i].codice);
        
        printf("Titolo libro:");
        scanf("%s",libri[i].titolo);
        
        printf("Autore libro:");
        scanf("%s",libri[i].autore);
        
        printf("Anno libro:");
        scanf("%d",&libri[i].anno);
        
        printf("Editore libro:");
        scanf("%s",libri[i].editore);
        
        fwrite(libri,sizeof(libri),1,fp);
        
        fclose(fp);
        
        printf("Sono stati inseriti tutti i campi necessari per registrare il libro");
        
        return;
        
    }
    Ho provato a guardare la funzione qsort() e sarei interessato al funzionamento se qualcuno mi spiega come farla funzionare. Grazie in anticipo.

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

    https://support.microsoft.com/it-it/kb/73853

    trovi documentazione ed esempio della qsort con le strutture
    Ultima modifica di oregon; 04-11-2015 a 23:56
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.