Quando ti si dà le indicazioni devi seguirle, se non lo fai e poi continui sulla strada sbagliata è naturale che "impazzisci".
Questo il codice di quanto detto sopra, con l'ultimo for scritto in maniera compatta
#include <iostream>
using namespace std;
int main(){
char stringa[1000] = {'\0'};
int frequenza[256] = {0};
cout << "Inserire la stringa: ";
cin.getline(stringa, sizeof(stringa));
for(int i = 0; stringa[i] != '\0'; i++)
frequenza[stringa[i]]++;
for(int i = 0; stringa[i] != '\0'; frequenza[stringa[i++]] = 0)
if(frequenza[stringa[i]])
cout << stringa[i] << ": " << frequenza[stringa[i]] << endl;
return 0;
}
Ripassa bene le basi (compresa la codifica ASCII) e poi affronta gli esercizi quando padroneggerai bene le basi stesse, altrimenti non arrivi da nessuna parte con la codifica di Huffman. L'esercizio era molto semplice