Ver Mensaje Individual
  #4 (permalink)  
Antiguo 06/04/2015, 03:41
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 1 mes
Puntos: 204
Respuesta: arreglos y sus elementos repetidos

Lo primero, intenta poner ejemplos que compilen. El código que has puesto tiene bastantes errores: variables no declaradas, falta un punto y coma y los includes están mal. Además de eso, es importante decorar el código con las etiquetas "HighLight", para que sea legible... también es bastante importante tabular el código correctamente... esto último no se si lo has hecho o no porque tal y como está el código no se puede saber, pero lo pongo por si acaso.

Hablando de tu problema: Dado que te piden que no repitas la salida, no tiene sentido que, para cada número, recorras el vector desde el principio contando apariciones. Más bien deberías:

1. Para cada número buscas coincidencias en posiciones anteriores:
1a. Si existen pasas al siguiente número puesto que este ya está procesado
1b. Si no se han encontrado, buscas y cuentas las coincidencias que hay en posiciones siguientes... una vez has terminado, muestras el mensaje


Código C++:
Ver original
  1. #include<iostream>
  2.  
  3. int main()
  4. {
  5.   int cont, pasar;
  6.   int i, j;
  7.  
  8.   int a[] = {2, 4, 7, 2, 3, 4, 7, 7};
  9.   const int N = sizeof( a ) / sizeof( int );
  10.  
  11.   std::cout << "\n";
  12.   for ( i = 0; i < N; i++ )
  13.   {
  14.     pasar = 0;
  15.     for ( j = i; j-- && !pasar; )
  16.       pasar = a[i] == a[j];
  17.  
  18.     if( !pasar )
  19.     {
  20.       for( j=i, cont=0; j < N; ++j )
  21.         cont += a[i] == a[j];
  22.  
  23.       std::cout << "el elemento " << a[i] << " se repite " << cont << " veces\n";
  24.     }
  25.   }
  26. }