Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: creiko en 11 Abril 2016, 09:27 am



Título: invertir un vector
Publicado por: creiko en 11 Abril 2016, 09:27 am
Almacenar de N números en un vector, almacenarlos en otro vector en orden inverso al vector original e imprimir el vector resultante.

ejemplo
ingresa 3  números

los números serian
6
9
4

el inverso seria
4
9
6


el error esta en la inversión del vector. solo me devuelve una parte de los números
solo me muestra bien los do primeros números y el resto números muy grandes
esto es lo que me muestra en mi resultado

ejemplo
ingresa 3  números

los números serian
6
9
4

el inverso seria
9
6
1769860606


 

tengo esto hecho

Código
  1. #include "iostream"
  2. #include "stdio.h"
  3. #include "stdlib.h"
  4. #include "string.h"
  5. #include "time.h"
  6.  
  7.  
  8. int main()
  9. {
  10. int i,j,h,v1[i],v2[h];
  11. printf("cuanto numeros desea capturar en el vector \n");
  12. scanf("%d",&h);
  13.  
  14. for(i=0;i<h;i++)
  15. {
  16. printf("Digite el Numero del vector[%d]: ",i);
  17. scanf("%d",&v1[i]);
  18. v2[j]=v1[i];
  19. j--;
  20. }
  21.  
  22. printf("Vector a la Inversa \n");
  23. for (j=0;j<h;j++)
  24. {
  25. printf("%d \n",v2[j]);
  26. }
  27.  
  28. }


Mod: Los códigos deben ir en etiquetas GeSHi


Título: Re: invertir un vector
Publicado por: ivancea96 en 11 Abril 2016, 12:21 pm
Pusiste:
Código
  1. v2[j]=v1;
  2. j--;

En el "for i=0". j no está inicializada. Querrías decir i?


Título: Re: invertir un vector
Publicado por: fary en 11 Abril 2016, 14:34 pm
Porque editas tu post cuando se revuelve la duda?



Título: Re: invertir un vector
Publicado por: ivancea96 en 11 Abril 2016, 15:59 pm
Código
  1. int i,j,h,v1[i],v2[h];
Ahí tampoco inicializas i y h, así que los vectores serán de un tamaño indefinido. Revisa todo el código.


Título: Re: invertir un vector
Publicado por: Gunhack en 12 Abril 2016, 05:02 am
Aparte de lo que te comentan arriba, te has complicado mucho la vida...  ;D

Código
  1. #include <stdio.h>
  2.  
  3. int main() {
  4.  
  5.    int tam;
  6.  
  7.    printf("Ingrese cuantos numeros desea en el vector: ");
  8.    scanf("%d", &tam);
  9.  
  10.    int vec[tam];
  11.  
  12.    for(int i = 0; i < tam; i++) {
  13.  
  14.        printf("Ingresa el numero del vector[%d]: ", i);
  15.        scanf("%d", &vec[i]);
  16.    }
  17.  
  18.    printf("\n\nVector Inverso\n");
  19.    for(int i = tam-1; i >=0; i--) { //Se inicia desde el tamaño del vecotr -1 que es la posicion final
  20.                                     //y se va disminuyendo hasta 0 que es la posicion inicial
  21.        printf("%d\n", vec[i]);
  22.    }
  23.  
  24. }
  25.