Anuncios Google

mostrar alreves vector?? y desplazarlo una posicion hacia un lado?

Buenas! sabeis como pued hacer para representar un vector de numeros enteros alreves?? (ejem: 1,2,3,4,5->5,4,3,2,1)

y tambien como puedo hacer que ese vector se desplace una posicion hacia la derecha? (ejem: 1,2,3,4,5 -> 2,3,4,5,1)

en el codigo.. (los numeros los puedes introducir tu por teclado)

#include<stdio.h>
 
int main()
{
    int vector[5];
    int i;
    i=0;
    printf("introduce los numeros\n");
    for(i=0;i<5;i++){
        printf("escribe [%d]\n",i);
        scanf("%d",&vector[i]);
    }
    printf("al reves\n");
    //???
 
    printf("si desplazamos el vector a la derecha quedara:\n");
    //???
 
 
 
}

tiene que ser una tonteria, pero esque ahroa mismo no me sale, no estoy inspirado xD

Saludos y gracias!



Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Para mostrarlos al revés, usa

Para mostrarlos al revés, usa una cuenta hacia atrás (un for inverso al que usaste para introducir los datos al vector).

Mostrarlos corridos es sencillo también: con un for que inicie en 1, imprimes del elemento 1 del vector en adelante. Después, fuera del for, imprime manualmente el elemento 0 del vector y ya está.

Imagen de ALCales

Gracias! pero el de ponerlos

Gracias! pero el de ponerlos alreves por que no me imprime nada

#include<stdio.h>
 
int main()
{
    int vector[5];
    int i;
    i=0;
    printf("introduce los numeros\n");
    for(i=0;i<5;i++){
        printf("escribe [%d]\n",i);
        scanf("%d",&vector[i]);
    }
    printf("al reves\n");
    //???
 
    for(i=5;i<0;i--){
        printf("\t%d",vector[i]);
    }
 
    printf("\nsi desplazamos el vector a la derecha quedara:\n");
    //???
    for(i=1;i<5;i++){
        printf("%d",vector[i]);
    }
    printf("%d",vector[0]);
    getchar();

que me falla? xD


Imagen de joserc87

error

En la condición del segundo for, has puesto i<0 en lugar de i>=0, por lo que nunca entra.

Lo de desplazarlo, no es que esté mal, pero hay otra forma más genérica de hacerlo:

for (i=comienzo; i<comienzo+5; i++){
  int el = i%5;
  printf ("%d", vector[el]);
}

Así lo puedes desplazar 1 vez, 2, 3 o las que quieras. Si pones comienzo=4, será como si lo hubieses desplazado hacia el otro lado. ;)

Saludos.


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.