Programación General > C/C++

 ordenar caracteres

(1/1)

elpis:
HOla! estoy haciendo un programa con 5 funciones en C++ :
la primera muestra un menu
las otras 4 son las opciones del menu respectivamente.

menu:
ingresar nuemros
ingresar caracteres
ordenar ascendentemente
ordenar descendentemente
salir


si bien el codigo  es una aproximación, ya que tiene cosas que arreglar, y que le faltan
no se me ocurre la funcion para ordenar los caracteres, me podrían ayudar?



///codigo
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void menu();
int ingres_num(int);
char ingres_carac(char);
void oden_ascen(int[],char*,int);
void orden_descen();
void menu(void){
   printf("nnt1 - Ingresar numeros");
   printf("nt2 - Ingresar caracteres");
   printf("nt3 - Ordenar ascendentemente");
   printf("nt4 - Ordenar descendentemente");
   printf("nt5 - Salir");
   printf("nnt Ingrese la opcion escogida");



}
int ingres_num(int *num){
   int i=0,n=10,x=5;
   clrscr();
   num=(int*)calloc(n,sizeof(int));
   printf("Ingrese numeros (0 para terminar)");
   gotoxy(3,5);
   scanf("%i",&num);
   if(num!=NULL&&n!=0){
      while(num!=0){
         i++;
         gotoxy(x,5);
         scanf("t%i",&num);
         flushall();
         x=x+2;
      }
   }
   return *num;
}
char* ingres_carac(char* car){
   clrscr();
   printf("Ingrese los caracteres (enter para terminar)nttt");
   gets(car);
   return car;
}
void orden_ascen(int num[],char* car,int i){
   //////////////////////////////////////////////////////////////////////////////
////////////////////////////////
////////////////////
  }
void main(){
   int *numeros,op,i=0;
   char *caracteres;
   do{
      clrscr();
      menu();
      scanf("%i",&op);
      flushall();
      if((op>=1)&&(op<=4))
         switch(op){
            case 1:
               ingres_num(numeros);
               break;
            case 2:
               ingres_carac(caracteres);
               break;
            case 3:
               orden_ascen(numeros,caracteres,i);
               break;
            case 4:
                //   orden_descen(numeros,caracteres);
               break;
         }
      else
         if(op!=5){
            printf("ERROR!, opcion escogida no se encuentra,intro para ingresar nuevamente");
            getch();
         }
   }while(op!=5);

}


me olvidaba:

Máximo de datos en los vectores 10 elementos.

ProfesorX:

--- Cita de: "elpis" ---no se me ocurre la funcion para ordenar los caracteres, me podrían ayudar?

--- Fin de la cita ---

Hay varios algoritmos de ordenacion, el mas sencillo es "ordenacion por burbuja", aunque no es muy eficiente, pero como dije antes es el mas sencillo de aprender e implementar. Solo busca en google ordenacion por burbuja, o en ingles bubble sort.

Solo un detalle mas, en tu programa estas usando punteros (*numeros, *caracteres) pero no les asignas memoria, eso es un error, puedes corromper la memoria y obtener errroes de segment fault. Utiliza un array en lugar de punteros, o asignales espacio en memoria a los punteros con malloc().

Saludos :)

elpis:
Gracias Amigo, estoy aprendiendo esto del método de la burbuja, ya que lo había escuchado pero nunca tuve la precaución de investigarlo, haber si ahora soluciono el programa.
Gracias  :D

Navegación

[0] Índice de Mensajes

Ir a la versión completa