• Viernes 8 de Noviembre de 2024, 18:57

Autor Tema:  Problema principiante!  (Leído 939 veces)

makabra

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Problema principiante!
« en: Miércoles 9 de Diciembre de 2009, 11:26 »
0
Bueno el problema que tengo es bastante sencillo, dispongo de un arrglo numeros enteros que representan codigos
Ahora en cada elemento del arreglo hay diferentes codigos, lo que debo hacer es ver la cuantos codigos hay y luego el numero en que se repite (si es que los hay), para luego desplegar en pantalla . es decir supongamos que el elemento del arreglo codigos
  • es igual a 1234 y se repite 3 veces, entonces se debe ver:


codigo         cantidad
1234   -----------   3
....
...
....


DESDE YA MUCHAS GRACIAS!

maxi_deg

  • Nuevo Miembro
  • *
  • Mensajes: 11
  • Nacionalidad: ar
    • Ver Perfil
Re: Problema principiante!
« Respuesta #1 en: Miércoles 9 de Diciembre de 2009, 16:15 »
0
Cita de: "makabra"
Bueno el problema que tengo es bastante sencillo, dispongo de un arrglo numeros enteros que representan codigos
Ahora en cada elemento del arreglo hay diferentes codigos, lo que debo hacer es ver la cuantos codigos hay y luego el numero en que se repite (si es que los hay), para luego desplegar en pantalla . es decir supongamos que el elemento del arreglo codigos
  • es igual a 1234 y se repite 3 veces, entonces se debe ver:


codigo         cantidad
1234   -----------   3
....
...
....


DESDE YA MUCHAS GRACIAS!

en primera medida tiene quehaber alguna indicacion que te marque el tamaño del arreglo. Digamos que la hay

Bueno tendras e construir una funcion masomenos asi:


int contar_codigos(int arreglo[],aux[],int Tamanio) // Donde aux es un arreglo de igual tamanio al anterior
{
int i=0,j=0;

dejarnulo( aux[],tamanio); // Esta funcion deja en cero todo el arreglo no es dificil de hacer, te la dejo...


for(i=0,i<tamanio,i++)
//explora y encuentra los valores que se repiten
{
   for(j=i,j<tamanio,j++)
   {
      if(arreglo==arreglo[j]&&aux[j]!=0)
// Los primeros numeros tendran la info.
       {
          aux++;
          aux[j]++;
// Optimizacion *1.
       }
   }
}



for(i=tamanio-1,i>=0,i--)
// Ahora coloco los valores a los posteriores.
{
   for(j=0,j<tamanio&&aux!=0,j++)
// Optimizacion *1.
   {
      if(arreglo==arreglo[j]);
       {
          aux=aux[j];
          j=tamanio;
// Una vez encontrado el primer valor ya no me importa encontrar mas.
       }
   }
}


// Listo ahora volvemos a la funcion main e implementamos un for con un printf("%10d  ----------- %d", arreglo,aux);
// donde el for saldra cuando i==tamanio;
 
}



espero que sea esto lo que necesitabas...