C/Visual C - AYUDA CON ESTRUCTURAS

 
Vista:

AYUDA CON ESTRUCTURAS

Publicado por Luis (6 intervenciones) el 07/02/2003 19:13:29
El problema que tengo es que tengo que crear una estructura de este tipo:
struct clientes{
int codigo;
char nombre[15];
char apellidos[20];
float saldo;
};
La estructura la se crear lo que no se es ordenar a partir de los apellidos esta estructura.
Agradeceria que me ayudasen con este pequeño problema. Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:AYUDA CON ESTRUCTURAS

Publicado por fernando.gomez (61 intervenciones) el 07/02/2003 20:21:57
mmm... no te entendi bien, pero...

recuerda que un struct es un tipo de datos personalizado, como un int o un bool. lo que te entendi es que dentro de una sola estructura, quieres ordenar varios apellidos... eso, pues no se puede hacer...

podrias ser mas especifico?

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA CON ESTRUCTURAS

Publicado por Googol (255 intervenciones) el 07/02/2003 20:32:23
Pero, ¿sabes ordenar?
Si sabes ordenar datos de otro tipo y el problema es que no sabes comparar, puedes usar strcmp(cad1, cad2) para comparar, que devuelve menor que 0, 0 o mayor que 0 si, respectivamente, cad1 es menor, igual o mayor que cad2.
Para ordenar puedes usar la función qsort de la librería de C (en stdlib.h). Tendrás que hacerte una función auxiliar de comparación, que reciba dos parámetros (las dos estructuras a comparar), y devuelva cual es mayor (usando strcmp sobre el campo de los apellidos).
Mira en la ayuda de tu compilador para saber los parámetros exactos.

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA CON ESTRUCTURAS

Publicado por fernando.gomez (61 intervenciones) el 07/02/2003 23:56:08
ok. entonces, tendrias que hacer comparaciones, cierto?

en tal caso, tienes dos opciones. o comparas los tipos de datos primitivos:

STRUCT st1;
STRUCT st2;

if (st1.campo == st2.campo)
sentencias;

la otra manera, la mas elegante, es que sobrecargues operadores, para que puedas comparar

STRUCT st1, st2;

if (st1 == st2)
sentencias;

para el ejemplo anterior, tendiras que sobrecargar el operador ==. ahora, no estoy 100% seguro de que puedas sobrecargar una estructura, pero en una clase si puedes aplicar la sobrecarga de operadores.

ahora, para desarrollar tus algoritmos de ordenacion, puedes crear un array de estructuras y aplicar alguno de los ya conocidos sistemas de ordenamiento (como el algoritmo de la burbuja, mi favorito). la otra seria que hicieras una pila y aplicaras tambien algun algoritmo como los de ordenamientos de arrays.

espero haberte entendido y haberme sabido explicar. saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA CON ESTRUCTURAS

Publicado por Luis (6 intervenciones) el 08/02/2003 16:43:10
Muchas gracias por tu ayuda fernando, mas o menos es lo que tu dices
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA CON ESTRUCTURAS

Publicado por chuidiang (1 intervención) el 10/02/2003 10:13:48
Creo que puedes sobrecargar el operator == , el >, el < de cualquier cosa. Si no es una clase, tienes que hacerlo como si fuera una función. En concreto, la del operator == podría ser algo así como

En algún .h
int operator == (struct s1 &, struct s2 &);

En el .cc, el código de eso.

No estoy muy seguro de la sintaxis, ya que debes ponerla de una forma exacta (los parámetros por referencia, el tipo de dato devuelto, etc) para que luego el compilador entienda que es para comparar estructuras de ese tipo.

De la misma forma, el operator >, operator <, operator !=, etc, etc.

Si tienes interés puedo buscarlo por algún libro.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA CON ESTRUCTURAS

Publicado por Luis (6 intervenciones) el 08/02/2003 16:45:48
Muchas gracias por tu ayuda googol, intentare llevar a la practica tus consejos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar