hey jkr how do i print 3 letters out in alphabitical order

#include <iostream>
using namespace std;

int main () {

string Letters;

Letter[0];
Letter[1];
Letter[2];
      
      cout << "Please enter three characters:" << endl;
      cin  >> Letter;
      
      if Letter[0]
   

if ( Letter[0] == Letter[1] || Letter[1] == Letter[2] || Letter[0] == Letter[2])
      cout << endl << "At least two characters are identical" << endl;


      return 0;
}
tedschniedersAsked:
Who is Participating?
 
Jaime OlivaresConnect With a Mentor Software ArchitectCommented:
Really this is the easiest way in C++, I can explain it step by step:

// Some "headers" needed by C++
#include <list>
#include <iostream>
using namespace std;

// Creates a "list" similar to an array, with sorting capabilities
    list<char> lc;

// Creates an "iterator", an object that is used to transverse the list
    list<char>::iterator it;

// This portion just insert three elements in the list (push_back method does)
    for ( int i = 0; i < 3; ++i)
        lc.push_back(Letter[2] );

// Here is the sortion method, couldn't be easier
    lc.sort();

// Here ordered data is displayed using the iterator object instead a "for" loop
    for ( it = lc.begin(); it != lc.end(); ++it)
        cout << *it;

// Adds a new-line character
    cout << endl;

If you want to make it with pure "if"s then will be look messy, for 3 element there are six ordering cases:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

then you have to make 6 "if"s, similar to (1st case):
if ( Letter[0] < Letter[1] && Letter[1] < Letter[2])
    cout << Letter[0] << Letter[1] << Letter[2] << endl;

you will need 5 more blocks like this.


 

0
 
Jaime OlivaresSoftware ArchitectCommented:
Homework?
It is explained in the question you just have accepted. Using jkr's code:

#include <list>
#include <iostream>
using namespace std;

// some code to fill Letter[] array

    list<char> lc;
    list<char>::iterator it;

    for ( int i = 0; i < 3; ++i)
        lc.push_back(Letter[2] );

    lc.sort();

    for ( it = lc.begin(); it != lc.end(); ++it)
        cout << *it;
    cout << endl;

0
 
Jaime OlivaresSoftware ArchitectCommented:
Sorry, there is a typo:
        lc.push_back(Letter[2] );
must be:
        lc.push_back(Letter[i] );
0
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

 
Jaime OlivaresSoftware ArchitectCommented:
Obviously you have to put there the portion that fills the array, maybe you can integrate all the code you have received and post it for review.
0
 
Jaime OlivaresSoftware ArchitectCommented:
This portion is unnecesary:
Letter[0];
Letter[1];
Letter[2];
0
 
tedschniedersAuthor Commented:
see thats just way to complex for me right now
 
can i use some kind of mask or if statement

sorry i am such a pain in the ass but i do learn alot from u guys

thanks
0
 
tedschniedersAuthor Commented:
thank i appreciate it
0
 
SteHCommented:
A small typo:
// This portion just insert three elements in the list (push_back method does)
    for ( int i = 0; i < 3; ++i)
        lc.push_back(Letter[2] ); // adds only last letter
should certainly be
// This portion just insert three elements in the list (push_back method does)
    for ( int i = 0; i < 3; ++i)
        lc.push_back(Letter[i] ); // adds all three letters
0
 
Jaime OlivaresSoftware ArchitectCommented:
Hey Steh, I have posted correction in my second comment!
0
 
SteHCommented:
Sorry, overlooked that.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.