ayuda con vectores

Iniciado por luis9829, 29 Junio 2017, 20:00 PM

0 Miembros y 1 Visitante están viendo este tema.

luis9829

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;
}

aurquiel

#1
#include <stdio.h>
#include <stdlib.h>  
#define LENGTH 1001

int num[LENGTH];

int main()
{
   for(int dato=0 ; dato!=-1 && dato<LENGTH; )
   {
         printf("Intoduzaca numero= ");
         scanf("%d",&dato);
         ++num[dato];
         printf("El numero %d ha sido introducido %d", dato, num[dato]);
   }
   
   return EXIT_SUCCESS;
}


No entiendo el porque de la ultima parte del numero mil

luis9829

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

aurquiel

#3
Umm con un break bastara, no lo he probado pero debe funcionar, ni lo he compilado.

   #include <stdio.h>
   #include <stdlib.h>  
   #define LENGTH 1001
   
   int num[LENGTH];
   
   int main()
   {
       int dato;
       while(1)
       {
             printf("Intoduzaca numero= ");
             scanf("%d",&dato);
             if(dato==-1 || dato>=LEGTH)
                   break;            //salgo del while infinito y no imprimo nada el programa termina
             ++num[dato];
             printf("El numero %d ha sido introducido %d", dato, num[dato]);
       }
   
       return EXIT_SUCCESS;
   }