invertir un vector

Iniciado por creiko, 11 Abril 2016, 09:27 AM

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

creiko

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

ivancea96

Pusiste:
v2[j]=v1;
j--;


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

fary

Porque editas tu post cuando se revuelve la duda?

Un byte a la izquierda.

ivancea96

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.

Gunhack

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

}