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



LinkBack URL
About LinkBacks



