SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: elpis en Domingo 10 de Julio de 2011, 22:30
-
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.
-
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 :)
-
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