elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Invertir un vector
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Invertir un vector  (Leído 2,702 veces)
bryanrz96

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Invertir un vector
« en: 2 Diciembre 2015, 21:10 pm »

Hola, quisiera si mi programa cumple con lo que me pide el prof.

Crear un programa que pide en input al cliente la dimension del vector de enteros, crea el vector y lo llena con numeros del 1 hasta la dimension ingresada. Una vez que tengo el vector este debe ser pasado a una funcion que invierte el orden.
y aqui mi codigo, no se si cumple con lo que dice y como estructura esta bien???
Gracias
Código
  1. int main()
  2. {
  3.  int dim;
  4.  
  5.  cout << "Inserisci la dimensione del vettore:" << endl;
  6.  cin >> dim; // Supongamos que ingrese 10
  7.  int vettore[dim]; // mi vector es de tamagno 10
  8.  cout<<"Vettore Iniziale:"<<endl;
  9.  
  10.  for(int i=1; i<=dim; i++){
  11.    vettore[i] = i * 1;
  12.  
  13.    cout << vettore[i] << endl;
  14.  
  15.  }
  16.     cout<<"Vettore Invertito:"<<endl;
  17.     for(int i=dim; i>0; i--){
  18.     cout<<vettore[i]<<" ";
  19.     cout<<endl;
  20.        }
  21.  }
  22.  
  23.  
  24.  


En línea

Zodiak98

Desconectado Desconectado

Mensajes: 120


Ver Perfil
Re: Invertir un vector
« Respuesta #1 en: 3 Diciembre 2015, 04:56 am »

Una cosa, cuando estás dándole los valores al arreglo, te estás comiendo la posición 0, y además que estás pasándote de su tamaño con el "<=", y multiplicar por 1 no tiene ningún sentido. Lo corregí por ti, sería de esta forma:
Código
  1. for(int i = 0; i < dim; i++){
  2.        vettore[i] = i + 1;
  3. }
  4.  

Y para invertirlo, una manera fácil que puedes usar es a través de un arreglo auxiliar, recorrerás del vector original la última posición y se la asignarás a la primera posición de ese arreglo auxiliar, y así sucesivamente hasta llegar a la posición 0 del arreglo original, y la última del arreglo auxiliar. Y luego lo que haces es igualar el vector original a cada uno de los valores del vector auxiliar para que el original sea modificado.
Lo harías así:
Código
  1. void invertir(int vettore[], int tam) {
  2.    int vAux[tam]; //Arreglo auxiliar.
  3.    int aux = 0; //Contador auxiliar para desplazarnos por vAux.
  4.  
  5.    //Llenando el arreglo auxiliar con los valores invertidos.
  6.    for(int i = tam - 1; i >= 0; --i, ++aux) {
  7.        vAux[aux] = vettore[i];
  8.    }
  9.  
  10.    //Asignándole al arreglo original los valores del arreglo invertido.
  11.    for(int i = 0; i < tam; ++i) {
  12.        vettore[i] = vAux[i];
  13.    }
  14. }
  15.  

Y ya sólo muestras el arreglo invertido.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Invertir vector (Problema muy pavo)
Java
Xedrox 2 5,595 Último mensaje 13 Septiembre 2010, 05:44 am
por Xedrox
invertir el orden de un vector
Programación C/C++
indict 2 3,516 Último mensaje 22 Junio 2013, 17:34 pm
por leosansan
invertir un vector
Programación C/C++
creiko 4 5,356 Último mensaje 12 Abril 2016, 05:02 am
por Gunhack
como invertir un vector
Programación C/C++
rembrandt85 1 2,178 Último mensaje 24 Febrero 2017, 14:38 pm
por AnthonyS
RECURSION en su estado mas puro para invertir un vector! « 1 2 »
Programación C/C++
Elias Flores 13 5,713 Último mensaje 16 Septiembre 2018, 04:32 am
por Beginner Web
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines