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

    Ordinamento struttura con campi char e int

    Salve a tutti, sto svolgendo questo esercizio: dato un file in cui sono scritti: nome cognome media esami di un gruppo di studenti, devo leggere il file e ordinare gli studenti per media. Sono riuscito a inserire tutti gli strudenti in una struttura con la quale ho definito un nuovo tipo di dato, tuttavia non riesco ad ordinare poich� nonostante io riesca a fare l�ordinamento con la media, poi non ci riesco per nome e cognome. Come mi posso muovere? Il problema � che se effettuo l�ordinamento e, ad esempio, se lo faccio trovarndo il massimo e poi scambiando, non posso fare lo stesso con i campi nome e cognome, in quanto stringhe.


    codice:
    /*
     ============================================================================
     Name        : 14_marzo.c
     Author      : Luigi Daddario
     Version     :
     Copyright   : Luigi Daddario
     Description : Esercitazione del 14 marzo laboratorio di programmazione
     ============================================================================
    
    
    
    
    
    
    
    
    
    
     */
    
    
    #include <stdio.h>
    #include <stdlib.h>
    
    
    typedef struct {
    
    
        char nome[30];
        char cognome[30];
        int media_esami;
    
    
    }studente;
    
    
    int main(void) {
    
    
        /* definisco il numero degli studenti */
        int numero_studenti = calcolaNumeroStudenti("/home/luigi/Scrivania/file.txt");
        studente elenco_studenti[numero_studenti];
    
    
    
    
        riempiStruttura("/home/luigi/Scrivania/file.txt", elenco_studenti,10); /* inserisco i dati dal file nella struttura */
    
    
    
    
    
    
        return EXIT_SUCCESS;
    }
    
    
    int calcolaNumeroStudenti(char nome_file[])
    {
    
    
        FILE *fp;
        fp = fopen(nome_file, "r");
        int numero_studenti = 0;
        char line[256];
    
    
        if(fp)
        {
            while(!feof(fp))
            {
    
    
                fgets(line, sizeof(line), fp);
                numero_studenti++;
    
    
            }
        }
        else printf("Errore nell'apertura del file");
    
    
        fclose(fp);
    
    
    
    
        return numero_studenti;
    }
    
    
    void riempiStruttura(char nome_file[], studente elenco_studenti[], int numero_studenti)
    {
    
    
            FILE *fp;
            fp = fopen("/home/luigi/Scrivania/file.txt", "r");
            int i = 0;
    
    
            if(fp)
            {
                while(!feof(fp))
                {
                    while(i<10){
    
    
                    fscanf(fp, "%s\t%s\t%d", elenco_studenti[i].nome, elenco_studenti[i].cognome, &elenco_studenti[i].media_esami);
    
    
                    i++;
                    }
                    }
            }
            else printf("Impossibile aprire il file!");
    
    
            fclose(fp);
    
    
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Non capisco il tuo problema ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    In che senso? se effettuo l'ordinamento sul campo "media_esami" della struttura, come faccio ad ordinare nome e cognome? mi manca qualcosa..

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Quote Originariamente inviata da DaddarioLuigi Visualizza il messaggio
    In che senso? se effettuo l'ordinamento sul campo "media_esami" della struttura, come faccio ad ordinare nome e cognome? mi manca qualcosa..
    Continuo a non capire. Quando ordini non sai scambiare i due elementi della struttura?

    Lo mostri il codice che usi per l'ordinamento?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Tag per questa discussione

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.