Hi guys I have written some code and it works fine, the only problem is I think is not that mobile, I mean it looks big for what it does. Basically I have three names in c-string and I like to arrange them alphabetically, but I am not allowed to use arrays.
So the question is how to optimise my code? Thanks
Code:
#include<iostream>
#include<cstring>
using namespace std;
int main( )
{
char name1[16] = {'\0'},
name2[16] = {'\0'},
name3[16] = {'\0'};
cout <<"The program will display entered names in alphabetical order.\n";
cout <<"Enter three names pressing the Return key after each name\n";
cin >> name1 >> name2 >> name3;
cout <<"The alphabetical order of the name is:\n";
if(strcmp(name1, name2) < 0 && strcmp(name1, name3) < 0)
{
if(strcmp(name2, name3) < 0)
cout << name1 << endl << name2 << endl <<name3 << endl;
else
cout << name1 << endl << name3 << endl << name2 << endl;
}
else if(strcmp(name2, name1) < 0 && strcmp(name2, name3) < 0)
{
if(strcmp(name1, name3) < 0)
cout << name2 << endl << name1 << endl << name3 << endl;
else
cout << name2 << endl << name3 << endl << name1 << endl;
}
else if(strcmp(name3, name1) < 0 && strcmp(name3, name2) < 0)
{
if(strcmp(name1, name2) < 0)
cout << name3 << endl << name1 << endl << name2 << endl;
else
cout << name3 << endl << name2 << endl << name1 << endl;
}
else if(strcmp(name1, name2) == 0 && strcmp(name2, name3) == 0)
{
cout << name1 << endl << name2 << endl <<name3 << endl;
}
else if(strcmp(name1, name2) == 0)
{
if(strcmp(name2, name3) < 0)
cout << name1 << endl << name2 << endl <<name3 << endl;
else
cout << name3 << endl << name1 << endl << name2 << endl;
}
else if(strcmp(name1, name3) == 0)
{
if(strcmp(name1, name2) < 0)
cout << name1 << endl << name3 << endl << name2 << endl;
else
cout << name2 << endl << name1 << endl << name3 << endl;
}
else if(strcmp(name2, name3) == 0)
{
if(strcmp(name2, name1) < 0)
cout << name2 << endl << name3 << endl << name1 << endl;
else
cout << name1 << endl << name2 << endl <<name3 << endl;
}
return 0;
}