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

    funzione ordinamento particolare

    Salve, vi posto parte di un programma.
    Come si può notare la funzione di ordinamento è la selection sort adattata; quello che devo fare è ordinare per cognome (in ordine crescente) una serie di richieste (totRich è il numero totale).
    L'idea è che posso stabilire una relazione di ordine tra due lettere, ma è corretto il confronto if(r[j].cognome<r[index].cognome)?Cioè, il programma confronta le due lettere iniziali oppure mi salta tutto?

    void Ordina(int totRich, Richiesta r[]){
    for(int i=0; i<totRich-1; i++){
    int index=i;
    for(int j=i+1; j<totRich; j++)
    if(r[j].cognome<r[index].cognome) index=j;
    Richiesta tmp=r[i];
    r[i]=r[index];
    r[index]=tmp;}}


    dove Richiesta è una struttura di questo tipo:

    struct Richiesta {
    char nome[MAXS];
    char cognome[MAXS];
    int punti; };




    Grazie in anticipo per le risposte

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Qual è il linguaggio di riferimento?
    Hai letto il Regolamento?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Non confronta neanche il primo carattere, confronta i due indirizzi di memoria.
    Guardati la strcmp.

  4. #4

    Re: Moderazione

    Originariamente inviato da alka
    Qual è il linguaggio di riferimento?
    Hai letto il Regolamento?
    scusate, ho dimenticato di dirlo; è c++

  5. #5
    Originariamente inviato da ramy89
    Non confronta neanche il primo carattere, confronta i due indirizzi di memoria.
    Guardati la strcmp.
    Grazie mille, sei stato chiaro e conciso. Così ho risolto il problema

  6. #6
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219

    Re: Re: Moderazione

    Originariamente inviato da alephuno
    scusate, ho dimenticato di dirlo; è c++
    Allora al posto di array di char puoi usare il tipo string, che ha gli operatori <,>,== (e anche molti altri) in overloading, per cui due stringhe puoi confrontarle benissimo con l' operatore <, ottenendo lo stesso effetto di strcmp.

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.