Pequeña duda en C

ReBeNTuk0

Buenas!Estoy aprendiendo C y tengo una duda. He hecho este sencillo codigo de comparacion de cadenas y numeros usando el metodo de la burbuja y el de ordenacion por seleccion. En principio el programa funciona bien, pero a veces (a lo mejor 1 de cada 3 o 4 veces) al contar los caracteres de las palabras no concuerdan los nombres y los caracteres. Por ejemplo, si meto Ana, Jaime y Antonio, hay veces que me dice que tienen 7 caracteres, 3 caracteres y 5 caracteres respectivamente y no se por que. A ver si me podeis ayudar vosotros que sois machines!! Gracias xd

http://rafb.net/p/VhWm8W87.html

MTX_Anubis

lo que te ocurre es que si quieres tener ordenados los nombres con su longitud en dos arrays distintas, tienes que trabajar con ambas a la vez.

me explico, pones david, paco y lucía de inicio y te lo ordena a

david
lucía
paco

hasta ahí perfecto

luego sacas la longitud y lo metes en otro array
5
5
4

luego ordenas ese array de longitud nada más así que el de nombres no se modifica y el otro te queda así:

4
5
5

y luego imprimes por pantalla los dos a la vez:

david 4
lucía 5
paco 5

que obviamente está mal

No sé si es obligatorio usar otra array para las longitudes pero es absurdo pudiendo ordenar la cadena de nombres sacando las longitudes directamente xD

Dod-Evers

And remember, que en c tienes siempre el caracter \0 al final...

ReBeNTuk0

Arreglado :)

#2 El fallo era que ordenaba las letras de menor a mayor pero no cambiaba la palabra. Me ha costado arreglarlo xd gracias

MTX_Anubis

#4 claro por eso te dije que a la hora de ordenar tenías que trabajar con las dos arrays a la vez, si ordenas una por un lado y luego otra por otro, pues eso, no afecta a la primera xD

pero vamos, como te he dicho no hace falta una array para la longitud, puedes hacer lo mismo que has hecho al ordenarlos alfabeticamente pero con sus longitudes directamente. Lo veo más sencillo vamos :P

ReBeNTuk0

ya se que es mas facil pero lo hacia simplemente para practicar vectores. El ejercicio pedia solo ordenarlos alfabeticamente pero me puse a pensar a ver que podia hacer mas y pense en eso xd

Usuarios habituales

  • ReBeNTuk0
  • MTX_Anubis
  • Dod-Evers