Cita:
Iniciado por elignah Gracias por la solucion, pero eso es lo que no se hacer... Como lo resuelvo?
- Para recorrer el rango 1-10 necesitas un bucle.
- Luego, dentro de dicho bucle, necesitas contar el número de repeticiones. Para almacenar dichas repeticiones necesitas un entero y para conocer el número de repeticiones necesitas recorrer el vector que ha rellenado el usuario (lo que consigues con otro bucle). En cada iteración de este segundo bucle, si el número que encuentras coincide con el que estás buscando incrementas la variable que cuenta las apariciones.
- Para volcar el resultado por pantalla imagino que no necesita muchas explicaciones.
Cita:
Iniciado por elignah Lo de define, si, ya me di cuenta, pero no forma parte del problema que tengo para resolver la consigna.
Si te centras únicamente en lo que te piden vas a coger malos hábitos. Es solo una sugerencia.
Cita:
Iniciado por elignah Vengo al foro con el objetivo de aprender, de que me respondan dudas...
Hay un dicho que dice que si a un pobre le das un pescado comerá un día, pero que si lo enseñas a pescar podrá alimentarse el solo. Si yo cojo tu código lo arreglo y te planto la solución te estoy salvando el culo un día pero tu no vas a aprender absolutamente nada (créeme que se de lo que hablo). Necesitas aprender a pensar de una forma diferente a la habitual para poder programar y eso solo se consigue enfrentándose a los problemas. Yo te doy pistas para ayudarte a recorrer ese camino, pero lo demás es cosa tuya.
Cita:
Iniciado por elignah Pero "n" la estoy usando en un for. Eso no hace que vaya revisando el vector y almacenando ahi? Tampoco lo entendi eso, estoy pidiendo una solucion, si no me la pueden dar diganme y listo... Vengo al foro con el objetivo de aprender, de que me respondan dudas...
Código C:
Ver originalint vector[NUM_ELEMENTOS] = {1,2,1,5};
int n;
for(k=0;k<4;k++){
for(j=k+1;j<4;j++){
if (vector[k] == vector[j]){
n ++;
}
}
}
for(i=0;i<4;i++){
printf("Existen %i elementos del numero %i\n", n
, vector
[i
])); }
Esto es lo que hace tu código:
- k=0
- j=k+1=0+1=1
- vector[k]=vector[0]=1, vector[j]=vector[1]=2, luego vector[k]!=vector[j]
- j=j+1=1+1=2
- vector[k]=vector[0]=1, vector[j]=vector[2]=1, luego vector[k]==vector[j]
- n=n+1=0+1=1
- vector[k]=vector[0]=1, vector[j]=vector[2]=5, luego vector[k]!=vector[j]
- k=k+1=0+1=1
- j=k+1=1+1=2
- vector[k]=vector[1]=2, vector[j]=vector[2]=1, luego vector[k]!=vector[j]
- j=j+1=2+1=3
- vector[k]=vector[1]=2, vector[j]=vector[3]=5, luego vector[k]!=vector[j]
- k=k+1=1+1=2
- j=k+1=2+1=3
- vector[k]=vector[1]=1, vector[j]=vector[3]=5, luego vector[k]!=vector[j]
- i=0, recordemos que n=1 y vector[i]=vector[0]=1
- print "Existen 1 elementos del numero 1"
- i=i+1=0+1=1, n=1, vector[i]=vector[1]=2
- print "Existen 1 elementos del numero 2" <-- MAL
- i=i+1=1+1=2, n=1, vector[i]=vector[2]=1
- print "Existen 1 elementos del numero 1" <-- OTRA VEZ???
- i=i+1=2+1=3, n=1, vector[i]=vector[3]=5
- print "Existen 1 elementos del numero 5" <-- MAL
Un entero únicamente puede almacenar un valor... tu estás intentando que almacene varios y ese concepto es erróneo. O conviertes n en un array o calculas el número de apariciones, las almacenas en n y para no perder el valor imprimes el resultado en ese mismo momento.
¿Lo ves más claro si lo pongo así?
- bucle i=1...10
- n=0
- bucle j=0...NUM_ELEMENTOS-1
- si i==vector[j], n++
- fin bucle
- El numero i se repite n veces
- fin bucle