Hem, sto cercando di usare questa qsort ma mi da un sacco di problemi, io ho una struct cosi' definita:
codice:
struct Carta
{
char seme;
int tipo;
};
Ho fatto due funzioni una per creare un mazzo ( struct Carta **mazzo ) e una per mescolare il mazzo. Adesso vorrei fare una funzione per mi consenta di rimettere il mazzo nella posizione originale cioe' ordinato da 1 a K e cuori-picche-fiori-mattoni.
Intanto volevo provare soltanto con le cuori e ho scritto il criterio di confronto cosi'
codice:
int compare( const void *s1, const void *s2 )
{
struct Carta *first = (struct Carta*) s1;
struct Carta *second = (struct Carta*) s2;
if( first->seme == 'c' && second->seme == 'c' )
{
if( first->tipo > second->tipo )
return 1;
else if ( first->tipo < second->tipo )
return -1;
else
return 0;
}
}
ed
codice:
void ordinaMazzo( struct Carta **mazzo )
{
qsort( mazzo, 52, sizeof( struct Carta* ), compare );
}
pero' non funziona, c'e' qualche errore di concetto ?