Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ejercicio de vectores que no me sale. Quien me da una mano? soy nuevo

Estas en el tema de Ejercicio de vectores que no me sale. Quien me da una mano? soy nuevo en el foro de C/C++ en Foros del Web. Que tal gente, soy nuevo en el foro. Resulta q me estoy iniciando en el tema de la programacion, estoy en lo mas basico, y ...
  #1 (permalink)  
Antiguo 19/03/2016, 00:16
 
Fecha de Ingreso: marzo-2016
Mensajes: 7
Antigüedad: 8 años, 8 meses
Puntos: 0
Exclamación Ejercicio de vectores que no me sale. Quien me da una mano? soy nuevo

Que tal gente, soy nuevo en el foro. Resulta q me estoy iniciando en el tema de la programacion, estoy en lo mas basico, y me encuentro con este ejercicio:

Escribe un programa que lea diez enteros comprendidos entre 1 y 10, los almacene en
un vector y escriba por pantalla la cantidad de elementos de cada número que contiene.
Ejemplo: Dado el siguiente vector [2, 2, 2, 3, 3, 4, 4, 4, 7, 7]
La salida producida sería:
Existen 3 elementos del número 2
Existen 2 elementos del número 3
Existen 3 elementos del número 4
Existen 2 elementos del número 7


Que me esta complicando la vida. Les cuento, con mis escasos conocimientos, pude hacer este codigo que obviamente no me funciona, y quiero q me lo revisen a ver q es lo q falta, y que es lo que esta mal:

Código PHP:
#include <stdio.h>

int main (){

int vector[4];

int ijk;
int n 0;




printf("Escriba 4 numeros:\n");

for (
i=0;i<4;i++){

    
printf("Introduzca numero %i: "i+1);
    
scanf("%i", &vector[i]);
}

for(
k=0;k<4;k++){
    for(
j=k+1;j<4;j++){
        if (
vector[k] == vector[j]){
            
++;
            
           }

    }
}
for(
i=0;i<4;i++){
printf("Existen %i elementos del numero %i\n"nvector[i]));
}


system("pause");
return 
0;



CAMBIE EL NUMERO 10 a 4 para hacerlo mas corto al probarlo, pero la idea es la misma.

Les juro que no se cuantas horas ya estoy viendo de resolverlo y no puedo!
Busque ayuda en otro foro y me dieron este codigo, que funciona perfectamente, pero no lo entiendo! Intente de entenderlo con el debugger paso a paso pero no hay caso! es desesperante!!
Les dejo el codigo que funciona pero no entiendo (despues les especifico cuales son las partes que no entiendo):

Código PHP:
#include<stdio.h>
int main(){
    
int i,j,n,tem;
    
printf("Cuantos numeros desea introducir\n");
    
scanf("%d",&n);
    
int Array[n];
    for(
i=0;i<n;i++){
        
printf("Ingrese la cantidad No, %d\n",i+1);
        
scanf("%d",&Array[i]);
    }
    for(
i=0;i<n-1;i++){
        for(
j=0;j<n;j++){
            if(Array[
j]>Array[j+1]){ //NO ENTIENDO ESTA PARTE!  COMO UN NUMERO VA A SER MAYOR QUE ESE NUMERO +1??? No significa eso?
                
tem = Array[j];
                Array[
j] = Array[j+1];    //NO ENTIENDO ESTAS 3 LINEAS!! PARA QUE EL METODO DE LA BURBUJA!!???
                
Array[j+1] = tem;
            }
        }
    }
    
tem 1;
    for(
i=1;i<=n;i++){                //TAMPOCO ENTIENDO ESTAS 3 o 4 LINEAS!!
        
if(Array[i] != Array[i-1]){
            
printf("Existen %d elementos del numero %d\n",tem,Array[i-1]);
            
tem 1;
        }
        else
            
tem++;
    }
    return (
0);


Bueno espero que me puedan ayudar, para los que saben seguramente sea una boludez el tema, pero estoy muerto de ganas de aprenderlo y tengo que recurrir aca porque ya van varias horas que no me sale!

Muchas gracias!
  #2 (permalink)  
Antiguo 19/03/2016, 12:18
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 1 mes
Puntos: 204
Respuesta: Ejercicio de vectores que no me sale. Quien me da una mano? soy nuevo

Código C:
Ver original
  1. int vector[4];

¿Cuantas veces tienes ese 4 repetido en el código? Unas cuantas, ¿verdad? Y si de repente quieres cambiar de 4 a 10 o te aseguras de cambiar el valor en todos los sitios o el programa va a funcionar mal.

Para evitar eso hay una buena costumbre que puedes ir adquiriendo y es la de usar valores constantes. La idea es definir el valor una sola vez y reutilizarla tantas veces como sea necesario. Así, si dicho valor cambia únicamente hay que tocar en un sitio y el programa es más sencillo de mantener y se generan menos errores.

La forma clásica de hacer esto en C es usando #define de la siguiente forma:
Código C:
Ver original
  1. // después de esta línea puedes usar NUM_ELEMENTOS
  2. // en sustitución del 4
  3. #define NUM_ELEMENTOS 4
  4.  
  5. int vector[NUM_ELEMENTOS];
  6.  
  7. for(i=0;i<NUM_ELEMENTOS;i++)
  8. // ...

Y ahora, hablando de tu problema, si te fijas en el código que has puesto:


Código C:
Ver original
  1. for(k=0;k<4;k++){
  2.     for(j=k+1;j<4;j++){
  3.         if (vector[k] == vector[j]){
  4.             n ++;
  5.            }
  6.     }
  7. }

¿Que crees que hace ese código? n es un entero, luego únicamente puede almacenar un valor, sin embargo tú la estás usando para memorizar las apariciones de todos los números... Algo no cuadra.

Para resolver tu programa puedes aplicar dos soluciones diferentes:
  • Una pasa por recorrer el rango 1-10 y, en cada iteración, calculas el número de veces que se repite el número dado. Una vez realizado el cálculo imprimes el resultado en la pantalla.
  • La segunda posibilidad es similar a la primera, sólo que en vez de volcar el resultado sobre la marcha almacenas dicho resultado en otro vector (necesitas dos, uno para los números del usuario y otro para almacenar las apariciones). Después de haber calculado todas las apariciones recorres el vector de apariciones y vuelcas su contenido a la pantalla.

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #3 (permalink)  
Antiguo 19/03/2016, 22:20
 
Fecha de Ingreso: marzo-2016
Mensajes: 7
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Ejercicio de vectores que no me sale. Quien me da una mano? soy nuevo

Disculpame pero recien empiezo con programacion, muchas gracias por corregirme. Pero no estaria entendiendo la solucion para el problema!

Cita:
Una pasa por recorrer el rango 1-10 y, en cada iteración, calculas el número de veces que se repite el número dado. Una vez realizado el cálculo imprimes el resultado en la pantalla.


Gracias por la solucion, pero eso es lo que no se hacer... Como lo resuelvo?
Lo de define, si, ya me di cuenta, pero no forma parte del problema que tengo para resolver la consigna.

Cita:
n es un entero, luego únicamente puede almacenar un valor, sin embargo tú la estás usando para memorizar las apariciones de todos los números... Algo no cuadra.
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...
Cual seria la manera que tengo de resolver el problema si no me sale?

Cita:
¿Que crees que hace ese código?
Si hago ese codigo es porque por lo menos crei que me iba a dar la solucion, pero no, no llego a comprenderlo. Ya se que hay un error

Saludos

Última edición por elignah; 19/03/2016 a las 22:26
  #4 (permalink)  
Antiguo 20/03/2016, 07:25
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 1 mes
Puntos: 204
Respuesta: Ejercicio de vectores que no me sale. Quien me da una mano? soy nuevo

Cita:
Iniciado por elignah Ver Mensaje
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 Ver Mensaje
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 Ver Mensaje
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 Ver Mensaje
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 original
  1. int vector[NUM_ELEMENTOS] = {1,2,1,5};
  2. int n;
  3. for(k=0;k<4;k++){
  4.     for(j=k+1;j<4;j++){
  5.         if (vector[k] == vector[j]){
  6.             n ++;
  7.            }
  8.     }
  9. }
  10.  
  11. for(i=0;i<4;i++){
  12. printf("Existen %i elementos del numero %i\n", n, vector[i]));
  13. }

Esto es lo que hace tu código:
  1. k=0
  2. j=k+1=0+1=1
  3. vector[k]=vector[0]=1, vector[j]=vector[1]=2, luego vector[k]!=vector[j]
  4. j=j+1=1+1=2
  5. vector[k]=vector[0]=1, vector[j]=vector[2]=1, luego vector[k]==vector[j]
  6. n=n+1=0+1=1
  7. vector[k]=vector[0]=1, vector[j]=vector[2]=5, luego vector[k]!=vector[j]
  8. k=k+1=0+1=1
  9. j=k+1=1+1=2
  10. vector[k]=vector[1]=2, vector[j]=vector[2]=1, luego vector[k]!=vector[j]
  11. j=j+1=2+1=3
  12. vector[k]=vector[1]=2, vector[j]=vector[3]=5, luego vector[k]!=vector[j]
  13. k=k+1=1+1=2
  14. j=k+1=2+1=3
  15. vector[k]=vector[1]=1, vector[j]=vector[3]=5, luego vector[k]!=vector[j]
  16. i=0, recordemos que n=1 y vector[i]=vector[0]=1
  17. print "Existen 1 elementos del numero 1"
  18. i=i+1=0+1=1, n=1, vector[i]=vector[1]=2
  19. print "Existen 1 elementos del numero 2" <-- MAL
  20. i=i+1=1+1=2, n=1, vector[i]=vector[2]=1
  21. print "Existen 1 elementos del numero 1" <-- OTRA VEZ???
  22. i=i+1=2+1=3, n=1, vector[i]=vector[3]=5
  23. 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
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #5 (permalink)  
Antiguo 20/03/2016, 20:35
 
Fecha de Ingreso: marzo-2016
Mensajes: 7
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Ejercicio de vectores que no me sale. Quien me da una mano? soy nuevo

Perfecto eferion, muchisimas gracias, ahora si que entendi lo que hice mal, y entendi lo que hace el codigo. Tambien entendi que puedo hacer un array de n para almacenar los valores repetidos. Estoy en duda con esto:

Cita:
bucle i=1...10
A que se refiere?
Ahora me voy a poner a pensar. Creo, si no me equivoco, que estoy cerca de hacerlo. Paciencia por favor recien empiezo.
Si logro solucionar el bucle i, creo, creo, que lo tengo solucionado, gracias a vos obviamente. Pero no logro hacer que me aparezcan los numeros de array en
Cita:
El numero i se repite n veces
, me aparecen 0.1.2.3, porque hice este bucle i (que te repito, no entiendo):
Cita:
for(i=0;i<NUM_ELEMENTOS;i++){
Como puedo hacer, para que, en vez de 0.1.2.3 (COMO ESTA EN ESE BUCLE), me aparezcan los numeros del array?
Ya que en
Cita:
El numero i se repite n veces
, i hace referencia a ese bucle que no puedo llegar a comprender.

-------------------------------------------
MODIFICACION:
Eferion, mira este codigo por favor:

Código C:
Ver original
  1. #include <stdio.h>
  2. #define NUM_ELEMENTOS 4
  3.  
  4. int main (){
  5.  
  6. int vector[NUM_ELEMENTOS] = {1,2,1,5};
  7. int j,i,n,k;
  8.  
  9. for(k=0;k<NUM_ELEMENTOS;k++){
  10.     n=0;
  11.     for(j=0;j<NUM_ELEMENTOS-1;j++){
  12.         if (k == vector[j]){
  13.             n++;
  14.        }
  15.    
  16. }
  17. printf("El numero %i se repite %i veces\n", vector[NUM_ELEMENTOS], n);   //POR QUE AL COMPILAR  Y EJECUTAR ME APARECE 0,1,2 y 3? SI CON ESTO DIGO QUE ME MUESTRE EL VECTOR?
  18.  
  19. }
  20.    
  21.     system("pause");
  22.     return 0;
  23. }

Muchas gracias de nuevo eferion! lo agradezco muchisimo!
PD: MIL DISCULPAS SI SOY MUY REPETITIVO

Última edición por elignah; 20/03/2016 a las 22:55
  #6 (permalink)  
Antiguo 21/03/2016, 02:06
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 1 mes
Puntos: 204
Respuesta: Ejercicio de vectores que no me sale. Quien me da una mano? soy nuevo

Cita:
Iniciado por elignah Ver Mensaje
Estoy en duda con esto:

Cita:
bucle i=1...10
A que se refiere?
Yo interpreto que i recorre el rango de valores 1 a 10.

Cita:
Iniciado por elignah Ver Mensaje
Ahora me voy a poner a pensar. Creo, si no me equivoco, que estoy cerca de hacerlo. Paciencia por favor recien empiezo.
La paciencia la tienes que tener tu. Aprender a programar no es sencillo y la tentación de preguntar todas las dudas puede ser demasiado fuerte. Tienes que aprender a desenvolverte con estos problemas y la única forma es pegarse con ellos. Programar exige cambiar la forma de pensar y esa no es tarea facil.

Te recomiendo coger papel y lápiz para resolver los problemas de forma analítica y después plasmar tu solución en código. Eso y aprender a usar el depurador de código te va a ser de gran ayuda. El depurador de código es un grán aliado y no hay programador que se precie que no sepa usarlo... cuanto antes aprendas más provecho le vas a poder sacar.

Pero claro, para poder usar el depurador satisfactoriamente tienes que saber qué es lo que esperas que tu programa haga en todo momento... si no es así no vas a ser capaz de encontrar el momento en el que la solución del programa empieza a diverger respecto a la solución que pretendes conseguir.

Cita:
Iniciado por elignah Ver Mensaje
Como puedo hacer, para que, en vez de 0.1.2.3 (COMO ESTA EN ESE BUCLE), me aparezcan los numeros del array?
Código C:
Ver original
  1. for(k=0;k<NUM_ELEMENTOS;k++){
  2.     n=0;
  3.     for(j=0;j<NUM_ELEMENTOS-1;j++){
  4.         if (k == vector[j]){
  5.             n++;
  6.        }
  7. }

Si yo te digo que i (o k, me da igual el nombre de la variable) tiene que recorrer el rango [1,10] y tu en cambio usas el rango [0,NUM_ELEMENTOS] ya estás empezando mal. Tu programa será incapaz de decirte cuantas apariciones hay de números superiores a NUM_ELEMENTOS que, en tu caso concreto, vale 4.

Pero bueno, supongamos que arreglas ese problema. Una vez sales del bucle j se supone que ya tienes en n el número de repeticiones para un número en concreto. ¿Por qué no pones el printf ahí. Y bueno, aunque debería sobrar este comentario pero acuérdate de inicializar n después.

Como te comenté n es un entero por lo que únicamente puede almacenar un único resultado, luego es incapaz de memorizar las apariciones de TODOS los números del rango [1,10] a la vez. otra cosa es que tuvieses un n[10], en cuyo caso podrías utilizar n[0] para almacenar el número de apariciones del número 1, n[1] para el número 2 y así.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #7 (permalink)  
Antiguo 21/03/2016, 11:45
 
Fecha de Ingreso: marzo-2016
Mensajes: 7
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Ejercicio de vectores que no me sale. Quien me da una mano? soy nuevo

Bueno, paso a paso voy aprendiendo poco a poco:
Código C:
Ver original
  1. #include <stdio.h>
  2. #define NUM_ELEMENTOS 4
  3.  
  4. int main (){
  5.  
  6. int vector[NUM_ELEMENTOS] = {1,2,1,5};
  7. int j,i,n,k;
  8.  
  9. for(k=0;k<10;k++){
  10.     n=0;
  11.     for(j=0;j<NUM_ELEMENTOS-1;j++){
  12.         if (k == vector[j]){
  13.             n++;
  14.        }
  15.    }
  16.        printf("El numero %i se repite %i veces\n", vector[NUM_ELEMENTOS], n);
  17.        n=0;
  18. }
  19.  
  20.     system("pause");
  21.     return 0;
  22. }

Tengo una duda que no puedo comprender, y es en este paso:

Código C:
Ver original
  1. printf("El numero %i se repite %i veces\n", vector[NUM_ELEMENTOS], n);

Estoy pidiendo que me imprima vector[NUM_ELEMENTOS] y, en vez de eso, me imprime k (del 0 al 9)! No entiendo por que!!!

PD: Si, sabia lo del depurador. Esta vez no lo habia usado, recien lo use, y bueno, mas o menos voy entendiendo mas. Me queda esa duda del printf!

Muchas gracias Eferion por tal predisposición!
  #8 (permalink)  
Antiguo 21/03/2016, 15:09
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 1 mes
Puntos: 204
Respuesta: Ejercicio de vectores que no me sale. Quien me da una mano? soy nuevo

Cita:
Iniciado por elignah Ver Mensaje
Tengo una duda que no puedo comprender, y es en este paso:

Código C:
Ver original
  1. printf("El numero %i se repite %i veces\n", vector[NUM_ELEMENTOS], n);

Estoy pidiendo que me imprima vector[NUM_ELEMENTOS] y, en vez de eso, me imprime k (del 0 al 9)! No entiendo por que!!!
Si tu declaras un array tal que

Código C:
Ver original
  1. int vector[NUM_ELEMENTOS];

entonces reservas un espacio de NUM_ELEMENTOS de tipo entero que van a estar consecutivos. La primera posición del array viene dada por el índice 0 y la última por el índice NUM_ELEMENTOS-1, por lo que vector[NUM_ELEMENTOS] es un acceso no válido... no estás accediendo al array sino a otra cosa.

Si abrimos un poco las miras tenemos:

Código C:
Ver original
  1. int vector[NUM_ELEMENTOS] = {1,2,1,5};
  2. int j,i,n,k;

Todas estas variables puedne estar en la pila del programa pues son variables locales (el que estén o no depende finalmente de las optimizaciones del compilador). Normalmente el compilador procesa los parámetros de derecha a izquierda. Esto quiere decir que una vez ubicado el array en la pila el siguiente elemento puede ser k, después n, i y, finalmente, j. Si accedes a vector[NUM_ELEMENTOS] puede que leas el valor de k, si accedes a vector[NUM_ELEMENTOS+1] puede que leas el valor de n y así.

En cualquier caso yo procuraría, por el bien de tu programa, poner especial cuidado en no leer fuera de un array.

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #9 (permalink)  
Antiguo 21/03/2016, 16:17
 
Fecha de Ingreso: marzo-2016
Mensajes: 7
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Ejercicio de vectores que no me sale. Quien me da una mano? soy nuevo

Bueno Eferion, pensando e intentando me salio este codigo que funciona, miralo por favor, y decime si hay algo mal, pero funcionar funciona:

Código C:
Ver original
  1. #include <stdio.h>
  2. #define NUM_ELEMENTOS 4
  3.  
  4. int main (){
  5.  
  6. int vector[NUM_ELEMENTOS] = {1,2,1,5};
  7. int j,n,k;
  8.  
  9.  
  10. for(k=0;k<NUM_ELEMENTOS;k++){
  11.     n=0;
  12.     for(j=0;j<NUM_ELEMENTOS;j++){
  13.         if (vector[k] == vector[j]){
  14.             n++;
  15.        }
  16.    }
  17.    
  18.        printf("El numero %i se repite %i veces\n", vector[k], n);
  19.        n=0;
  20.    
  21.        
  22. }
  23.  
  24.     system("pause");
  25.     return 0;
  26. }


Lo unico que me gustaria corregir, es que no imprima dos veces el valor del array que esta repetido, observa:


Gracias! Saludos!

Última edición por elignah; 21/03/2016 a las 16:52
  #10 (permalink)  
Antiguo 21/03/2016, 23:24
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años
Puntos: 52
Respuesta: Ejercicio de vectores que no me sale. Quien me da una mano? soy nuevo

El código está bien. Incluso lindo. Personalmente haría las declaraciones de i y k dentro de los fors. Ya es mas cuestión de gustos, aunque reduce las lineas de código y es más descriptivo el uso que le das a las variables.

Ver por qué te sale 2 veces el resultado es cuestion de que hagas lo que se llama prueba de escritorio: Literalmente sigues con el dedo el flujo de tu programa.

Si te das cuenta, tienes dos 1 en tu arreglo.

Cuando compara el primer 1 con los demás encuentra al otro y te dice que lo encontró.
Cuando llega al segundo uno, lo compara de nuevo con el primero y de nuevo lo encuentra. Te lo vuelve a imprimir.

Se me ocurre que cuando hagas las comparaciones ya no revises los números de atras(los que ya revisaste). Tendrías que hace un pequeño cambio al código namas.

En vez de comparar todos con todos, compara cada uno, con los que hay adelante de ese, no con los que hay atrás.

Empieza con esa idea.

Saludos
  #11 (permalink)  
Antiguo 23/03/2016, 13:01
 
Fecha de Ingreso: marzo-2016
Mensajes: 7
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Ejercicio de vectores que no me sale. Quien me da una mano? soy nuevo

Muchas Gracias!
En la comparacion te referis al "if" no? O al "for"? De todas manera, estuve intentando cambiar cosas pero no me sale!
Cita:
con los que hay adelante de ese
Con eso te referis a agregarle un +1? o +j o +k? No llego a entenderlo!

Gracias por corregirlo!
  #12 (permalink)  
Antiguo 23/03/2016, 13:51
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años
Puntos: 52
Respuesta: Ejercicio de vectores que no me sale. Quien me da una mano? soy nuevo

Cuando intentes resolver un problema de manera algorítmica no pienses en código (i, j, k, variables). Piensa en el flujo.
Te recomiendo que investigues como usar los diagramas de flujo, te ayudarán mucho a resolver el problema.

Cita:
En la comparacion te referis al "if" no? O al "for"?
Cual es la comparación importante en tu algoritmo?
Código:
j<NUM_ELEMENTOS ??
Eso es sólo un límite para un contador.

Código:
vector[k] == vector[j]
Aquí es donde "sucede la magia" no? Entonces, cuando hablamos de la comparación, evidentemente nos referimos a esta.

Sigue el flujo de tu algoritmo y encontrarás la solución.

Saludodos
  #13 (permalink)  
Antiguo 25/03/2016, 14:45
 
Fecha de Ingreso: marzo-2016
Mensajes: 7
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Ejercicio de vectores que no me sale. Quien me da una mano? soy nuevo

Gracias, pero sigo sin entenderlo...

Otra forma, no se si es mas facil o mas dificil, no seria hacer un algoritmo para que elimine los numeros repetidos del array? Y ponga ese resultado en el ultimo printf?:
Código C:
Ver original
  1. printf("El numero %i se repite %i veces\n", vector[k], n);

De todas maneras, tampoco se como hacerlo ni si esta bien la idea.

Espero me ayuden para finalmente entenderlo

Etiquetas: ejercicio, funcion, int, mano, numero, programa, vector, vectores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:21.