• Miércoles 1 de Mayo de 2024, 21:45

Autor Tema:  ordenar caracteres  (Leído 2360 veces)

elpis

  • Nuevo Miembro
  • *
  • Mensajes: 9
  • Nacionalidad: 00
    • Ver Perfil
ordenar caracteres
« en: Domingo 10 de Julio de 2011, 22:30 »
0
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

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: ordenar caracteres
« Respuesta #1 en: Lunes 11 de Julio de 2011, 00:35 »
0
Cita de: "elpis"
no se me ocurre la funcion para ordenar los caracteres, me podrían ayudar?

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 :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

elpis

  • Nuevo Miembro
  • *
  • Mensajes: 9
  • Nacionalidad: 00
    • Ver Perfil
Re: ordenar caracteres
« Respuesta #2 en: Viernes 15 de Julio de 2011, 06:03 »
0
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