Senza aver preso in considerazione la lettura del file, che mi sembra apposta, mi sono fermato sull'algoritmo di ordinamento.
Il problema normalmente si risolve con una funzione del C, qsort(), su un valore, in questo caso pvote, ma è solo applicabile se i valori sono univoci.
Altimenti si potrebbe applicare il seguente algoritmo (swapsort), che va bene per piccoli array:
<pre id=code><font face=courier size= id=code>
for(i = 0; i < n; i++)
{
for(j = i + 1; j < n; j++)
{
if(arr[i].n > arr[j].n)
{
memcpy(&buf, arr[j], sizeof(buf));
memcpy(arr[j], arr[i], sizeof(buf));
memcpy(arr[i], &buf, sizeof(buf));
}
}
}
</font id=code></pre id=code>
Da notare è che la variabile 'j' punta al prossimo elemento di 'i', in quanto arr[i] e arr[j] sono identici. Per array più grandi si può ottimizzare entro certi limiti, soprattutto se i valori sono già parzialmente ordinati.
Giovanni
---
http://www.y2ksw.com/vbulletin