Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/09/2014, 12:39
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 1 mes
Puntos: 10
Respuesta: Cambiar y ordenar valores en arreglo

Al pedir ayuda para la primera parte del ejercicio, la de imprimir el array, da la sensación de que no tienes muy dominado este tema que es fundamental.

Pero bueno, por orientar un poco has de hacer:
1.- Para imprimir: un bucle for desde un indice=0 hasta un indice con valor de una unidad menor al tamaño del array. Esto es así porque un array de tamaño N va desde 0 a N-1 (al contar el 0)

2.- Para buscar el valor dentro del array:, puede venir bien un bucle while que actualice un contador y cuya condición de repetición sea que el valor del indice actual sea diferente al del valor buscado

3.- Para permutar los elementos: Una vez sabida la posición que ocupa el valor en cuestión, hacemos un bucle que vaya desde ese valor hasta 0 (en sentido decreciente). Dentro del bucle asignamos a cada elemento el valor del anterior, hasta llegar al elemento 0, al cual le asignaremos el valor buscado.

Saludos!

Bueno, y el código podría ser algo así:
Partimos de:
Código C++:
Ver original
  1. const int tam=5;
  2.     int numeros[tam]={1,2,3,4,5};

1.- Para imprimir:
Código C++:
Ver original
  1. cout<<"Lista original: ";
  2.     cout<<"[";
  3.     for (int i=0;i<tam;i++)
  4.     {
  5.         cout<<numeros[i];
  6.         if (i<tam-1)cout<<",";
  7.     }
  8.     cout<<"]";
  9.     cout<<endl;

2.- Para buscar la posición del valor dentro del array:
Código C++:
Ver original
  1. cout<<"Elegir valor"<<endl;
  2.     int valor;
  3.     cin>>valor;
  4.     int posicion=0;
  5.     while (numeros[posicion]!=valor)
  6.     {
  7.         posicion++;
  8.     }

3.- Para permutar los valores:
Código C++:
Ver original
  1. for (int i=posicion;i>0;i--)
  2.     {
  3.         numeros[i]=numeros[i-1];
  4.     }
  5.     numeros[0]=valor;