uhhmmmm...
- perchè mai c++? questo è un programma c, che del c++ utilizza soltanto la std::cout, tranquillamente sotituibile con printf... Per programmare in c++ è essenziale che il programmatore segua scrupolosamente il paradigma a oggetti, altrimenti nascono dei mostri... cambia estensione da cpp a c cambia gli include e sostituisci i cout, cosicchè all'ing. Stroustroup non vengano crisi esistenziali
- variabili globali a strafottere, la main invoca una serie di funzioni void (void)... non è proprio quello che si dice un esempio lampante di programmazione strutturata
- se la tua "ordinamento" funzionasse avremmo un algoritmo di ordinamento su un vettore in tempo lineare (e tu avresti vinto il nobel per la matematica), ma purtroppo è matematicamente impossibile "ordinare" in tempo lineare. Il bubble sort l'algoritmo che hai tentato di usare) è al contrario uno dei peggiori algoritmi di ordinamento mai concepiti, ed ha in effetti una complessità quadratica, quindi con un solo ciclo for sarà dura implementarlo... ne esistono molte varianti migliorate che per ordinare un array di 99 elementi vanno benissimo. Certo per ordinarne 99000 sarebbe meglio usare un algoritmo decente
- per la freq ci credo che non riesci a capire perchè va in segmentation fault... segui il mio suggerimento e struttura meglio il programma (utilizzando, ebbene sì, i puntatori), non avrai più nessun problema criptico di questo genere. Altrimenti riscrivi freq daccapo cercando di implementarla un po' meglio
- non si fa mai un confronto diretto tra double, in quanto sono numeri in virgola mobile a precisione finita che la macchina approssima a modo suo... con x e y double, non si scrive x == y, ma si sceglie un valore z molto piccolo e si scrive ( ( x - y ) < z ) E' un problema notevole per cui sono stati sviluppati raffinati workaround e sofisticati algoritmi