Programación General > C/C++

 Rotar un arreglo arriba o abajo y hallar la moda.

<< < (2/2)

david_lomber:
La verdad no se para que agregaste estas lineas a las funciones :S :

                v[n-1]=aux;

                v[0] = aux;

Ya que como estaba no necesitaba que le agragaras nada, ya lo acomodaba (a como entendi que lo qerias xD).

Y yo solo le habia puesto como parametro el tamaño ya que el vector lo habia hecho como global, bueno aqui te lo dejo como lo puse en c++, si tu lo ocupas en c lo conviertes :P (puede que encuentres raras algunas cabeceras :P esas se las pone el Builder c++):

//---------------------------------------------------------------------------

#include <vcl.h>
#include <iostream.h>
#include <conio.h>  
#define tam       5


void rotarArriba(int, int vec[]);
void rotarAbajo(int, int vec[]);
void mostrar(int, int vec[]);
//vec[5] = {1,2,3,4,5};
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
        char opc;
        int vec[tam] = {1,2,3,4,5};
        do{
                clrscr();
                cout<<"1.- Rotar Arriba"<<endl
                       <<"2.- Rotar Abajo"<<endl
                       <<"3.- Mostrar"<<endl
                       <<"4.- Salir"<<endl;
                cin>>opc;
                if (opc < '1' || opc > '4'){
                        cout<<"opcion no valida..."<<endl;
                        getch();
                }else{
                        switch (opc){

                                case '1':
                                        rotarArriba(tam, vec);
                                        break;

                                case '2':
                                        rotarAbajo(tam, vec);
                                        break;

                                case '3':
                                        mostrar(tam, vec);
                                        getch();
                                        break;
                        }
                }
        }while(opc != '4');
        return 0;
}       
//---------------------------------------------------------------------------
void mostrar(int n, int vec[]){
        for (int i=0; i<n; i++) cout<<vec[i]<<"\t";
}
//---------------------------------------------------------------------------
void rotarArriba(int n, int vec[]){
        int aux = vec[0];
        for (int i=1; i<n; i++)
                vec[i-1] = vec[i];
        vec[n-1] = aux;
}
//---------------------------------------------------------------------------
void rotarAbajo(int n, int vec[]){
        int aux = vec[n-1];
        for (int i=n-2; i>=0; i--)
                vec[i+1] = vec[i];
        vec[0] = aux;
}


Saludos!!

EDITO: Ahora me di cuenta que las lineas son las mismas que puse yo xDDD, nada más que tu las metiste dentro de los for y yo las tenia fuera :P

                v[n-1]=aux;

                v[0] = aux;

Eriol:
David, muchas gracias por ayudar.

Mira, el programa en C Borland corre normalmente aunque no reconoce la librería #include <vcl.h> en el Visual C++ que es el que utilizo normalmente no me reconoce además de esa, la iostream.h

Sin embargo, es perfectamente adaptable, pero la cosa es que mi menú solo debe tener 3 opciones.

Rotar Arriba, Rotar Abajo y Salir.

Una cosa que no comenté antes, es que además de eso, al momento de hacer la rotación, apenas seleccione una de las 2 opciones, el programa debe mostrar en pantalla la rotación sin que el usuario tenga que escoger verla.

david_lomber:
Solo borra la opcion Mostrar del menu y del switch su correspondienta opcion (case '3') y en los case de rotarArriba y rotarAbajo despues de llamar esas funciones, abajo haz una llamada a la funcion mostrar.

Saludos!!

Eriol:
David,  :gracias:

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa