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;
}