Título: Ordenar letras de una palabra en orden alfabetico Publicado por: vivinice en 20 Junio 2016, 03:07 am Que tal a todos, me llamo viviana y estoy empezando a programar.
tengo una duda con este programa ya que no ordeana de la letra A a la Z, marca un error, pero si cambiamos el ordenamiento inversamente, ordena correctamente de la Z a la letra A. gracias por su tiempo. Código: #include <iostream> #include <cstdlib> using namespace std; int main() { string letras=" ",aux=" "; int op=9; do{ cout<<"ingrese las letras que desee..."<<endl; cin>>letras; cout<<"Su palabra es..."<<endl; cout<<letras<<endl; for(int i=0;i<letras.size();i++) { for(int j=0;j<letras.size();j++) if (letras[j]>letras[j+1]) { aux[0]=letras[j]; letras[j]=letras[j+1]; letras[j+1]=aux[0]; } } cout<<endl; cout<<letras<<endl; cout<<endl<<endl; }while(op!=0); return 0; } Título: Re: Ordenar letras de una palabra en orden alfabetico Publicado por: AlbertoBSD en 20 Junio 2016, 17:16 pm Hola, no se si el error valla por ahi, tienes la condicion dwl segundo for:
Código
Pero llega un momento donde lees en: Código
Imagina que j ya es el ultimo caracter entonces j+1 lee en una posición de memoria no inicializada o en su defecto tiene el caracter nulo este tiene un valor de 0 y siempre va a ser menor a cualquier letra y el if se va a cumplir entonces va a hacer cosas raras el programa. Mejor en la condicion del for usa: Código
Saludos! |