Il problema non è chiarissimo, vediamo comunque di mettere a fuoco.
Supponiamo che io immetta 200 volte lo stesso valore (es. '3'). In uscita che cosa mi aspetto? Una riga ('Il valore 3 è presente 200 volte').
Supponiamo che io immetta 200 valori diversi (es. '1', '2', ..., '200'). In uscita cosa mi aspetto? 200 righe ('Il valore 1 è presente 1 volta', 'Il valore 2 è presente 1 volta', ecc.).
Non sappiamo se ci sono valori 'non validi', ad esempio i valori negativi o lo zero. Quindi ci diamo da soli dei limiti: i valori in input possono essere solo interi positivi maggiori di 0.
Detto questo, il programma lo imposterei così: due vettori da 200 posizioni di tipo intero. Il primo contiene i valori in input, il secondo i conteggi. All'inizio li inizializzerei tutti a 0. Farei un ciclo while da cui esco quando il contatore ha superato 199 o quando in input ho letto '<=0'.
Nel while: leggo un valore, se è > 0 inizio a cercare il valore nel vettore degli input, se lo trovo incremento il contatore nel vettore dei conteggi, se non lo trovo aggiungo il valore nel vettore degli input e incremento di uno il suo contatore nel vettore dei conteggi. Se il valore in input è <=0 termino il while e stampo i risultati.
Incomincia a buttare giù qualcosa sulla base di questa traccia.