Identificar valores repetidos em um vetor

Segue o enunciado:
Elabore um algoritmo que leia um vetor de 11 números positivos e apresente na tela quantos elementos são repetidos em um vetor.
Ex.: {0, 8, 5, 4, 7, 0, 6, 3, 4, 0, 7} = 7 {3 vezes o 0, 2 vezes o 4, 2 vezes o 7}

Meu algoritmo parcial:

main(){

int vet[11] = {0,8,5,4,7,0,6,3,4,0,7}, i, j, cont=0;

for(i=0; i<11; i++){
	for(j=0; j<11; j++){
		if(i!=j){	
			if(vet[i]==vet[j]){	
				cont++;			
			}			
		}
	}
}
printf("\n%d\n", cont++);

}

Minha dúvida é a seguinte: Como faço para ignorar um número que já foi verificado? Por exemplo, quando o primeiro “for(i=0; i<11; i++)” estiver na posição 5, o “for(j=0; j<11; j++)” irá verificar pela 2ª vez os 3 valores “0”(zero) e com isso a variável “cont” ira somar novamente a quantidade de “0” (zeros) que consta no vetor. Como consigo resolver isso?

Desenha no papel o array vet e faz teste de mesa…

No que tu estas fazendo, tu não vai conseguir contar os elementos.

Pensa no que tu quer como um histograma, algo tipo isso:

Então teu resultado vão ser N caixinhas onde você vai incrementando, uma para cada valor único, onde você vai ir incrementando o conteúdo do valor da caixa ao encontrar o valor correspondente a ela.

Terei que criar 11 variáveis contadoras?

Ou várias variáveis ou uma variável com várias posições.