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
Ir a la versión completa