Foros del Web » Programación para mayores de 30 ;) » C/C++ »

invertir un arreglo?¡?

Estas en el tema de invertir un arreglo?¡? en el foro de C/C++ en Foros del Web. hola, soy principiante en c++ y tengo un problema con mi arreglo, necesito que al cargar mi arreglo cuando lo muestre por pantalla pueda invertir ...
  #1 (permalink)  
Antiguo 17/06/2008, 08:03
 
Fecha de Ingreso: junio-2008
Mensajes: 2
Antigüedad: 15 años, 10 meses
Puntos: 0
invertir un arreglo?¡?

hola, soy principiante en c++ y tengo un problema con mi arreglo, necesito que al cargar mi arreglo cuando lo muestre por pantalla pueda invertir su contenido...
por ejemplo cuando yo escriba LOS, al invertilo se lea SOL. agradeceria mucho su ayuda. gracias espero puedan ayudarme en mi duda. . he intentado utilizando la sentencia if y else pero es evidente que algo tengo mal que no me corre el programa.
  #2 (permalink)  
Antiguo 17/06/2008, 08:09
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Respuesta: invertir un arreglo?¡?

¿Qué has intentado hacer? ¿Dónde estás trabado? ¿El código que tienes te muestra algún error?

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #3 (permalink)  
Antiguo 17/06/2008, 10:32
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: invertir un arreglo?¡?

Si conoces exactamente el numero de elementos del arreglo en cuestion podrias escribir a mano todo, sino, veo dificil que lo hagas sin usar un ciclo.
  #4 (permalink)  
Antiguo 17/06/2008, 13:48
 
Fecha de Ingreso: abril-2008
Mensajes: 264
Antigüedad: 16 años
Puntos: 2
Respuesta: invertir un arreglo?¡?

Código:
for(i=0; i< length_del_array/2; i++){
  int aux = array[i];
  array[i] = array [length_del_array - i];
  array[length_del_array - i] =aux;
}
Mas o meeeeenos, puede tener algun problemita, pero deberías de pensarlo así.
Espero que sirva, suerte!
__________________
Saludoss
Guille
  #5 (permalink)  
Antiguo 21/06/2008, 18:56
 
Fecha de Ingreso: enero-2008
Mensajes: 31
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: invertir un arreglo?¡?

Muy buenas!!

Mira, te dejo dos códigos, el primero es mas largo pero algo mas “entendible” que el segundo, te puse mas o menos la explicación para que lo puedas seguir…

Código PHP:
#include <stdio.h>
#include <conio.h>
#include <string.h>

void cat(char*);

void main()
{
char c1[26];       //declaro un array de char

printf("\nc1: ");
fflush(stdin);    //fflush "limpia" el buffer
gets(c1);  // o scanf("%s",&c1);
cat(c1);

puts(c1); //o tambien podes poner printf("\n%s",c1);
getch();  //este "para" el programa para que puedas ver la salida del puts
}

void cat(char*c1)
{
char*fin=c1,c;   //guardo en fin la posicion de memoria de c1 => fin tiene lo mismo que c1
int cant=0,i;

for( ;*
fin!='\0';fin++)   //llevo la cadena hasta el final
    
cant++;

fin--;    //retrocedo uno para no quedarme en el '\0'
cant--;

for(
i=0;i<(cant/2);i++,c1++,fin--)    //divido a cant por dos para que sea la mitad de la palabra
     
{
   
c=*c1;        //guardo el primer caracter de c1, la primer letra
     
*c1=*fin;   // "     la ultima letra de la palabra al principio de c1
     
*fin=c;     //y guardo la primera letra que habiamos guardado en c al final de la cadena
     
}


Y este es el otro que muuucho mas cortito, esta muy bueno! aunque puede resultar confuso...

Código PHP:
#include <conio.h>
#include <string.h>
#include <stdio.h>

void reves();

void main()
{
clrscr();

printf("Ingrese cadena: ");
reves();
getch();
}

void reves()
{
char a;
a=getchar();
if(
a!='\n')
    
reves();
putchar(a);//o tambien printf("%c",a);


Bueno, espero q te sirva...
Besitos!!
  #6 (permalink)  
Antiguo 22/06/2008, 16:27
Avatar de aloqui  
Fecha de Ingreso: diciembre-2007
Mensajes: 973
Antigüedad: 16 años, 5 meses
Puntos: 24
Respuesta: invertir un arreglo?¡?

Si tienes un array relleno y necesitas mostrar su contenido en orden inverso NO NECESITAS reordenarlo, simplemente necesitas recorrerlo desde atras hacia delante. Ejemplo:
Código:
char cadena[] = "probando";
int len = strlen(cadena);
int i;
for ( i=len-1; i>=0; i-- )
  printf( "%c", cadena[i] );
__________________
Grupos de Música
Pop Music Stars
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:23.