Eu não conhecia esses laços for com mais de uma variável, no caso você usou "novo". Mas enfim, consegui corrigir meu algoritmo. Eis o código:
#include <stdio.h> main () { int i, j, k, Lidos[20]; int Repetidos[20] {-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2}; int Repeticoes[20] {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; for (i = 0; i < 20; i++) { printf("Digite o a[%d] = ", i); scanf("%d", &Lidos[i]); for (j = 0; j <= i; j++) { if (Lidos[i] == Repetidos[j]) { Repeticoes[j]++; break; } else if (Repetidos[j] == -2) { Repetidos[[COLOR="red"]j[/COLOR]] = Lidos[i]; [COLOR="Red"]break;[/COLOR] } } if ( Lidos[i] < 0 || i >= 19) { for (k = 0; k < i; k++) { if (Repeticoes[k] != 1 && Repetidos[k] != -2) { printf("O numero %d apareceu %d vezes.\n", Repetidos[k], Repeticoes[k]); } } break; } } return 0; }
A modificações estão em vermelho. Obrigado, dúvida solucionada.