Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: luis9829 en 29 Junio 2017, 20:00 pm



Título: ayuda con vectores
Publicado por: luis9829 en 29 Junio 2017, 20:00 pm
tengo una duda con respecto a este programa necesito que haga lo siguiente
que sea digitada una serie de numeros por teclado y que finalize cuando el usario digite -1
cuando -1 sea digitado la visulizacion siguiente se tendra asi
1
1
1
2
2
4
1000
-1
numero 1 se ha repetido 3 veces
numero 2 se ha repetido 2 veces
numero 4 se ha repetido 1 vez
numero 1000 se ha repetido una vez

hasta el momento tengo asi pero no se como hacerle que me imprima eso al final
mi codigo esta asi
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int num[1001],i,j,cont=0;
    printf("digite numeros del 1 al mil si digita -1 saldra del programa\n");
    for(i=0;num[i-1]!=-1;i++){
        scanf("%d", &num);
    }
    for(j=0;j<num;j++){
        cont++;
    }
if(num==j){
    cont++;
}
printf("el numero %d esta repetido %d veces en el vector", i,cont);
return 0;
}


Título: Re: ayuda con vectores
Publicado por: aurquiel en 29 Junio 2017, 22:06 pm
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>  
  3. #define LENGTH 1001
  4.  
  5. int num[LENGTH];
  6.  
  7. int main()
  8. {
  9.    for(int dato=0 ; dato!=-1 && dato<LENGTH; )
  10.    {
  11.          printf("Intoduzaca numero= ");
  12.          scanf("%d",&dato);
  13.          ++num[dato];
  14.          printf("El numero %d ha sido introducido %d", dato, num[dato]);
  15.    }
  16.  
  17.    return EXIT_SUCCESS;
  18. }

No entiendo el porque de la ultima parte del numero mil


Título: Re: ayuda con vectores
Publicado por: luis9829 en 30 Junio 2017, 02:45 am
en si el vector osea tiene q ser hasta 1000 osea por ejemplo si yo digito unas 4 veces el mil me tiene q salir el numero mil se ha repetido 4 veces pero si ya digito otros numeros como por ejemplo el 2000 ya no debe leer ni salirme nada solo tiene q ser hasta ahi


Título: Re: ayuda con vectores
Publicado por: aurquiel en 30 Junio 2017, 03:59 am
Umm con un break bastara, no lo he probado pero debe funcionar, ni lo he compilado.

    
Código
  1. #include <stdio.h>
  2.    #include <stdlib.h>  
  3.    #define LENGTH 1001
  4.  
  5.    int num[LENGTH];
  6.  
  7.    int main()
  8.    {
  9.        int dato;
  10.        while(1)
  11.        {
  12.              printf("Intoduzaca numero= ");
  13.              scanf("%d",&dato);
  14.              if(dato==-1 || dato>=LEGTH)
  15.                    break;            //salgo del while infinito y no imprimo nada el programa termina
  16.              ++num[dato];
  17.              printf("El numero %d ha sido introducido %d", dato, num[dato]);
  18.        }
  19.  
  20.        return EXIT_SUCCESS;
  21.    }