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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


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

Desconectado Desconectado

Mensajes: 83



Ver Perfil
Algoritmo para invertir un array C++
« en: 6 Agosto 2015, 10:23 am »

Buenas, quiero invertir un array de manera que la posicion vec[0] sea la vec[dim], vec[1] sea vec[dim-1], etc. Pensaba que no iba a ser un problema pero al parecer no me funciona. Echadle un vistazo por favor.

Código
  1. void invertir(Tvector vec, unsigned dim){
  2.    for(unsigned i=0; i<dim; ++i){
  3.        vec[i]=vec[dim-i];
  4.    }
  5. }
  6.  

Gracias.


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Algoritmo para invertir un array C++
« Respuesta #1 en: 6 Agosto 2015, 10:36 am »

supongamos que vec[8] = {1,2,3,4,5,6,7,8}, dim será 8

tu código hará


Código:
i = 0; vec[0]=1; 8-0 = 8; vec[8]

listo en el primer ciclo tienes error... debe ser dim-i-1

ahora asumiendo ese cambio
Código:
i = 0; vec[0]=1; 8-0-1 = 7; vec[7]=8
vec = {8,2,3,4,5,6,7,8}
i = 1; vec[1]=2; 8-1-1 = 6; vec[6]=7
vec = {8,7,3,4,5,6,7,8}

ya deberías ver el error en tu código... siempre es bueno repasar esos códigos a mano

puedes hacer
Código
  1. for(unsigned i=0; i<dim/2; ++i){
  2.        aux = vec[i];
  3.        vec[i]=vec[dim-i-1];
  4.        vec[dim-i-1] = aux;
  5.    }

en este caso será
Código:
i = 0; vec[0]=1; 8-0-1 = 7; vec[7]=8
vec = {8,2,3,4,5,6,7,1}
i = 1; vec[1]=2; 8-1-1 = 6; vec[6]=7
vec = {8,7,3,4,5,6,2,1}
i = 2; vec[2]=3; 8-2-1 = 5; vec[5]=6
vec = {8,7,6,4,5,3,2,1}
i = 3; vec[3]=4; 8-3-1 = 4; vec[4]=5
vec = {8,7,6,5,4,3,2,1}
aquí termina (porque i es 4, que no es menor que 8/2)


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Copiar parte de una array a otra array
Programación Visual Basic
sircid 3 4,979 Último mensaje 19 Diciembre 2007, 11:27 am
por LeandroA
Mi algoritmo para eliminar datos de un array (tengo que usar 5 arrays)
Java
KaRaLLo 2 4,963 Último mensaje 27 Enero 2012, 08:36 am
por bewa
Ayuda, Invertir algoritmo para crear Keygen o Parchear Programa
Ingeniería Inversa
serrano15 0 3,144 Último mensaje 27 Marzo 2012, 09:16 am
por serrano15
Eliminar las posiciones pares de un array y comprimir el array
Java
sevedeboa 8 14,704 Último mensaje 26 Enero 2015, 15:52 pm
por sevedeboa
Codigo para invertir pilas
Programación C/C++
willsbs 1 14,972 Último mensaje 14 Marzo 2015, 03:55 am
por rir3760
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines