elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Página de elhacker.net en Google+ Google+


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Programa leer numeros repetidos en un array
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa leer numeros repetidos en un array  (Leído 25,954 veces)
vaXy

Desconectado Desconectado

Mensajes: 67


Ver Perfil
Programa leer numeros repetidos en un array
« en: 8 Marzo 2009, 17:10 »

Buenas, estoy intentando adaptar un codigo que me pasaron para que cuente los numeros repetidos en un array, pero no consigo hacer para que cada numero del array muestre las veces que se repite.
Me explico:
-Si tengo estos numeros
1
2
2
3
4

-Que haga algo asi:

1   1 vez
2   2 veces
3   1 vez
4   1 vez

Con este codigo lo unico que consigo es que si hay un valor igual al "size" que cuente las veces que aparece a lo largo del array, no que cuente cada numero del array y luego muestre las veces que se repite cada numero (sin que aparezca repetidos).
He intentado hacer bastantes "for" pero no consigo hacerlo asi que os he puesto el codigo que he podido adaptar y que funciona obviamente (aunque sea muy basico).
Si alguien tiene alguna idea de como enfocar lo que quiero le agradeceria su ayuda.
Saludos y gracias

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. main()
  5.  
  6. {
  7.  
  8.    int numero[10],size,contador=0,i=0;
  9.    printf("Introduzca la cantidad de numeros(hasta un maximo de 10): ");
  10.    scanf("%i",&size);
  11.    for (i=0;i<size;i++)
  12.    {
  13.     printf("Numero %i: ",i+1);
  14.     scanf("%i",&numero[i]);
  15.     }
  16.    for (i=0;i<size;i++)
  17.    {
  18.     if (numero[i]==size)
  19.     {
  20.      contador++;
  21.      }
  22.      printf("%i  %i\n",numero[i],contador);
  23.     }
  24.    system("Pause");
  25.  
  26.  
  27. return 0;
  28. }


En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Programa leer numeros repetidos en un array
« Respuesta #1 en: 8 Marzo 2009, 17:25 »

Haz un if y cada vez que sea igual a x sumale 1, no he mirado tu código no se si ahi sale :)


En línea

vaXy

Desconectado Desconectado

Mensajes: 67


Ver Perfil
Re: Programa leer numeros repetidos en un array
« Respuesta #2 en: 8 Marzo 2009, 17:33 »

Bueno pues ya te adelanto antes de que lo leas que es lo que tengo en el codigo sino fijate en la parte de :

Código
  1. if (numero[i]==size)
  2.     {
  3.      contador++;
  4.      }
  5.  
En línea

Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Programa leer numeros repetidos en un array
« Respuesta #3 en: 8 Marzo 2009, 18:42 »

Código:
#include <stdio.h>
int main()
{
    signed int array[10];
    signed int contador = 0;
    printf("Introduzca el valor del array, 10 numeros enteros: ");
    for(signed int i = 0; i <= 10; i++)
    {
        printf("\narray[%i] : ", i);
        scanf("%i", &array[i]);
    }
    for(signed int i = 0; i <= 10; i++)
    {
    if(array[i] == 1)    /* Se hace la comparacion, en este caso se busca el 1 */
    contador++;
    }
    printf("\n1 = %i veces", contador);
    return 0;
}
Salida :
Código:
C:\>codes
Introduzca el valor del array, 10 numeros enteros:
array[0] : 1

array[1] : 3

array[2] : 4

array[3] : 2

array[4] : 3

array[5] : 1

array[6] : 4

array[7] : 1

array[8] : 2

array[9] : 3

array[10] : 1

1 = 4 veces
C:\>

Es una manera de hacerlo, seguro habrá más.

Saludos
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Foxy Rider


Desconectado Desconectado

Mensajes: 2.406


Deprecated


Ver Perfil WWW
Re: Programa leer numeros repetidos en un array
« Respuesta #4 en: 8 Marzo 2009, 18:46 »

A Leo y Erick : El quiere contar cuanto se repite cada número distinto, no un número  en particular...



en el caso de C++
usá un vector de pair, primer elemento : número que aparece, segundo elemento, cantidad de veces ...

en el caso de C hacé una estructura con dos valores, x e y, con malloc() realloc() podrías ir redimensionando la lista para ir agregando los pares ...

en x guardás el número y ...
en y guardás la cantidad de veces ...

ahh, y si sólo querés mostrarlos (es decir, no almacenar la estadística), con dos for y una variable + printf alcanza

simple como eso, tratá y en caso de que tengas alguna duda o algo, con gusto te ayudo =)

Alex~
« Última modificación: 8 Marzo 2009, 18:49 por The Queen Of Ice » En línea

JuaN-ThE-HaCKeR

Desconectado Desconectado

Mensajes: 252


http://www.JBJ.esp.st


Ver Perfil WWW
Re: Programa leer numeros repetidos en un array
« Respuesta #5 en: 8 Marzo 2009, 19:30 »

Hola!

Yo hice hace tiempo una aplicación así, pero la borré. :xD

Era algo así;
Citar
Introduzca un número del 1 al 10: 5
Desea introducir otro [S/N] - S
Introduzca un número del 1 al 10: 6
... 1 5 8 3 6 5 2 10 8 9 1 10 3 5 3 6 5 4 3
1 --> 2 veces     2 --> 1 veces     3 --> 3 veces     4 --> 1 veces     5 --> 5 veces
6 --> 3 veces     7 --> 0 veces     8 --> 2 veces     9 --> 1 veces     10 -> 2 veces

Luego si tengo tiempo lo vuelvo a hacer y lo publico. :P

Saludos! ;)
En línea





vaXy

Desconectado Desconectado

Mensajes: 67


Ver Perfil
Re: Programa leer numeros repetidos en un array
« Respuesta #6 en: 8 Marzo 2009, 19:44 »

Si pero esa aplicacion a simple vista compararia todos los datos 1 a 1 para ver el numero de veces que se repiten, imaginate que fuesen numeros grandes en plan 20 o 30 ¿Serian las mismas lineas de codigo o aumentarian drasticamente?

De momento lo que se me ocurre para ver el numero total de datos repetidos es algo asi:

Código
  1.    for (a=0;a<size;a++)
  2.    {
  3.     for (b=0;b<a;b++)
  4.     {
  5.      if (numero[a]==numero[b])
  6.      contador++;
  7.      }
  8.     printf("%i\n",numero[a]);
  9.     }
  10.    printf("Hay %i datos repetidos.\n",contador);
  11.  

Sigo sin ver como hacer para que analice cada dato y halle cuantas veces se repita cada uno.
The Queen Of Ice tu respuesta me ayudo hacerme una idea pero aun no consigo verlo xD.
En línea

JuaN-ThE-HaCKeR

Desconectado Desconectado

Mensajes: 252


http://www.JBJ.esp.st


Ver Perfil WWW
Re: Programa leer numeros repetidos en un array
« Respuesta #7 en: 8 Marzo 2009, 20:12 »

Hola!

Código
  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int num[1024]={},nums,num2[51]={};
  6. cout << "Introduzca tantos números como desee del 1 al 50, para finalizar introduzca '0'" << endl;
  7. for(int i=0; num[i-1]!=0; i++)
  8. {
  9. cout << "Introduzca: ";
  10. cin >> num[i];
  11. nums=i;
  12. }
  13. for(int j=1; j<=50; j++)
  14. for(int i=0; i<=nums; i++)
  15. if(num[i]==j)num2[j]++;
  16. for(int i=1; i<=50; i++)
  17. {
  18. if(i>9)cout << i << " -> " << num2[i] << " veces\t";
  19. else   cout << i << " --> " << num2[i] << " veces\t";
  20. if(i%5==0)cout << endl;
  21. }
  22. }

Saludos! ;)
« Última modificación: 8 Marzo 2009, 22:01 por *JuαИ-TнE-HαÇKєR* » En línea





vaXy

Desconectado Desconectado

Mensajes: 67


Ver Perfil
Re: Programa leer numeros repetidos en un array
« Respuesta #8 en: 8 Marzo 2009, 20:26 »

No me compila con dev-c++ de todos modos lo intento pasar a c mas tarde ya que no me manejo con c++, y lo pruebo.
Gracias

EI: juntando mensajes.

Conseguido. Gracias a todos por la ayuda.
Aqui os dejo el codigo por si a alguien le interesa.
Lo que hace es mostrar los datos y al lado las veces que se repite en la tabla.


Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. main()
  5.  
  6. {
  7.  
  8.    int numero[10],size,a=0,b=0,contador[10]={};
  9.    printf("Introduzca la cantidad de numeros(hasta un maximo de 10): ");
  10.    scanf("%i",&size);
  11.    for (a=0;a<size;a++)
  12.    {
  13.     printf("Numero %i: ",a+1);
  14.     scanf("%i",&numero[a]);    
  15.     }
  16.    for (a=0;a<size;a++)
  17.    {
  18.     for (b=0;b<size;b++)
  19.     {
  20.      if (numero[a]==numero[b])
  21.      contador[a]++;
  22.      }
  23.     printf("%i %i\n",numero[a],contador[a]);
  24.     }
  25.    system("Pause");
  26.  
  27.  
  28. return 0;
  29. }
  30.  
« Última modificación: 8 Marzo 2009, 22:01 por eipock » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Un archivo bat puede leer numeros en archivos txt?
Scripting
Lockup 0 1,202 Último mensaje 16 Octubre 2011, 02:11
por Lockup
averiaguar numeros repetidos en un array
Java
ped18 7 3,686 Último mensaje 10 Enero 2012, 17:18
por [Case]
Array que lea ciertos números
Programación C/C++
DickGumshoe 2 477 Último mensaje 15 Enero 2012, 01:18
por DickGumshoe
[Duda] Valores Repetidos en array
Java
Slider324 2 1,639 Último mensaje 24 Julio 2012, 15:02
por luiggy2
Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines