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
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
Arreglado
#2 El fallo era que ordenaba las letras de menor a mayor pero no cambiaba la palabra. Me ha costado arreglarlo xd gracias
#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