Test Foro de elhacker.net SMF 2.1

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

#include "iostream"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "time.h"


int main()
{
int i,j,h,v1[i],v2[h];
printf("cuanto numeros desea capturar en el vector \n");
scanf("%d",&h);

for(i=0;i<h;i++)
{
printf("Digite el Numero del vector[%d]: ",i);
scanf("%d",&v1[i]);
v2[j]=v1[i];
j--;
}

printf("Vector a la Inversa \n");
for (j=0;j<h;j++)
{
printf("%d \n",v2[j]);
}

}



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:
v2[j]=v1;
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
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 (cpp) [Seleccionar]
#include <stdio.h>

int main() {

    int tam;

    printf("Ingrese cuantos numeros desea en el vector: ");
    scanf("%d", &tam);

    int vec[tam];

    for(int i = 0; i < tam; i++) {

        printf("Ingresa el numero del vector[%d]: ", i);
        scanf("%d", &vec[i]);
    }

    printf("\n\nVector Inverso\n");
    for(int i = tam-1; i >=0; i--) { //Se inicia desde el tamaño del vecotr -1 que es la posicion final
                                     //y se va disminuyendo hasta 0 que es la posicion inicial
        printf("%d\n", vec[i]);
    }

}