elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ordenar letras de una palabra en orden alfabetico
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ordenar letras de una palabra en orden alfabetico  (Leído 10,009 veces)
vivinice

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ordenar letras de una palabra en orden alfabetico
« 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;
}



En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Ordenar letras de una palabra en orden alfabetico
« Respuesta #1 en: 20 Junio 2016, 17:16 pm »

Hola, no se si el error valla por ahi, tienes la condicion dwl segundo for:

Código
  1. j<letras.size()

Pero llega un momento donde lees en:

Código
  1. letras[j+1]

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
  1. j<(letras.size() - 1)

Saludos!


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines