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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Es posible hacer esto sin arreglos?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Es posible hacer esto sin arreglos?  (Leído 7,058 veces)
pacoperico

Desconectado Desconectado

Mensajes: 100


Ver Perfil
Re: Es posible hacer esto sin arreglos?
« Respuesta #10 en: 16 Marzo 2013, 12:36 pm »

Si la cuestion es que no puedes usar arreglos una posible alternativa podria ser usar una estructura. Seria una estructura de diez miembros de tipo int y cada uno almacenaria cada valor que has introducido por teclado, una vez hecho esto solo tendrias que comprobar cada miembro de la estructura para ver si alguno se repite.


En línea

DaniekL

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: Es posible hacer esto sin arreglos?
« Respuesta #11 en: 16 Marzo 2013, 20:54 pm »

Si puedes usar punteros lo que puedes hacer es "fingir" el array con las direcciones de memoria.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(void) {
  5.  
  6. int *p, i, j, c=0;
  7.  
  8. p = malloc(sizeof(int)*10);
  9. for(i=0;i<10;i++) {
  10. printf("Introduzca un numero: ");
  11. scanf("%d", p+(sizeof(int)*i));
  12. for(j = 0; j < i; j++) {
  13. if(*(p+(sizeof(int)*i)) == *(p+(sizeof(int)*j))) {
  14. c++;
  15. }
  16. }
  17. }
  18. printf("Han ocurrido %d coincidencias\n", c);
  19. return 0;
  20. }


En línea

mr.blood

Desconectado Desconectado

Mensajes: 150


Ver Perfil
Re: Es posible hacer esto sin arreglos?
« Respuesta #12 en: 23 Marzo 2013, 12:48 pm »

Si he entendido bien el problema no es que no pueda hacerlo con arrays, es que aun no los han dado.



Como que no es posible sin arrays? No es eficiente ni limpio, pero posible es.

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    int num;
  6.    char num0=0, num1=0, num2=0, num3=0, num4=0, num5=0, num6=0, num7=0, num8=0, num9=0, i;
  7.    puts("Introduce 10 numeros\n");
  8.    for(i=0;i<10;i++)
  9.    {
  10.        scanf("%i",&num);
  11.        fflush(stdin);
  12.        switch(num)
  13.        {
  14.            case 0:
  15.                num0++;
  16.                break;
  17.            case 1:
  18.                num1++;
  19.                break;
  20.            case 2:
  21.                num2++;
  22.                break;
  23.            case 3:
  24.                num3++;
  25.                break;
  26.            case 4:
  27.                num4++;
  28.                break;
  29.            case 5:
  30.                num5++;
  31.                break;
  32.            case 6:
  33.                num6++;
  34.                break;
  35.            case 7:
  36.                num7++;
  37.                break;
  38.            case 8:
  39.                num8++;
  40.                break;
  41.            case 9:
  42.                num9++;
  43.                break;
  44.        }
  45.    }
  46.    if(num0>0)
  47.    {
  48.        printf("El 0 se repite %i veces\n", num0);
  49.    }
  50.    if(num1>0)
  51.    {
  52.        printf("El 1 se repite %i veces\n", num1);
  53.    }
  54.    if(num2>0)
  55.    {
  56.        printf("El 2 se repite %i veces\n", num2);
  57.    }
  58.    if(num3>0)
  59.    {
  60.        printf("El 3 se repite %i veces\n", num3);
  61.    }
  62.    if(num4>0)
  63.    {
  64.        printf("El 4 se repite %i veces\n", num4);
  65.    }
  66.    if(num5>0)
  67.    {
  68.        printf("El 5 se repite %i veces\n", num5);
  69.    }
  70.    if(num6>0)
  71.    {
  72.        printf("El 6 se repite %i veces\n", num6);
  73.    }
  74.    if(num7>0)
  75.    {
  76.        printf("El 7 se repite %i veces\n", num7);
  77.    }
  78.    if(num8>0)
  79.    {
  80.        printf("El 8 se repite %i veces\n", num8);
  81.    }
  82.    if(num9>0)
  83.    {
  84.        printf("El 9 se repite %i veces\n", num9);
  85.    }
  86.    getchar();
  87.    return 0;
  88. }
  89.  

Otro modo mas eficiente seria algo como:

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main()
  5. {
  6.    int num, i;
  7.    char repes[10];
  8.    memset(repes, 0, 10);
  9.    puts("Introduce 10 numeros\n");
  10.    for(i=0;i<10;i++)
  11.    {
  12.        scanf("%i",&num);
  13.        fflush(stdin);
  14.        repes[num]++;
  15.    }
  16.    for(i=0;i<10;i++)
  17.    {
  18.        if(repes[i]>0)
  19.        {
  20.            printf("Numero %i repetido %i veces\n", i, repes[i]);
  21.        }
  22.    }
  23.    getchar();
  24.    return 0;
  25. }

Aunque pueda mejorarse ;).

Sa1uDoS
« Última modificación: 23 Marzo 2013, 12:54 pm por mr.blood » En línea

85

Desconectado Desconectado

Mensajes: 206



Ver Perfil WWW
Re: Es posible hacer esto sin arreglos?
« Respuesta #13 en: 23 Marzo 2013, 13:50 pm »

Es raro que le hayan dicho que no puede usar arrays, structs, asignación dinámica, punteros, etc
le queda usar 10 variables enteras, o eso que hiciste mr.blood que para listar ya tiene el número dentro del string. Si fuera que son números del 0 al 9.
Ese profesor debe ser cualquiera para requerir estas cosas.. o se trata de un curso de ingreso o algo
En línea

Me cerraron el Windows Live Spaces, entonces me creé un WordPress XD
http://etkboyscout.wordpress.com/
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿ Es posible hacer esto??? « 1 2 3 »
Desafíos - Wargames
Golfo1974 23 23,681 Último mensaje 18 Abril 2011, 03:24 am
por Gambinoh
Es posible hacer esto con el bluetooth?
Hacking Mobile
Za3LoT 1 4,025 Último mensaje 12 Diciembre 2006, 23:35 pm
por DeViL_DeMoN
es posible hacer esto ...
PHP
pana88 5 3,438 Último mensaje 23 Julio 2008, 14:11 pm
por pana88
es posible hacer esto??
Hacking
-r3- 7 4,674 Último mensaje 16 Octubre 2011, 23:17 pm
por er_wanchu
Es posible hacer esto?
Programación C/C++
Erres 3 2,759 Último mensaje 30 Septiembre 2012, 03:53 am
por lindosekai
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines