2016-02-13 127 views
-4

我製作了一個程序,用戶在其中輸入3個名稱,我將按字母順序顯示名稱。 例如,如果用戶輸入 「查理」,「張國榮」和「安迪」 程序將顯示: 安迪,查理,張國榮......按字母順序顯示用戶的輸入名稱

,但我的輸出是:

Enter a name: charlie 

Enter a name: leslie 

Enter a name: andy 

andy leslie charlie 

再次另一個輸出:

Enter a name: abc 

Enter a name: def 

Enter a name: ghi 

ghi def abc 

我的輸出總是顯示第三階輸入姓名,然後第二個,然後首先它簡化版,不管什麼我已經寫它總是顯示名稱此訂單.... 請幫me.thanku

const int size = 10; 
    char name1[size]; 
    char name2[size]; 
    char name3[size]; 

    cout << "Enter a name: "; 
    cin.getline(name1, size); 
    cout << "Enter a name: "; 
    cin.getline(name2, size); 
    cout << "Enter a name: "; 
    cin.getline(name3, size); 


    if ("name1" > "name2" && "name1" > "name3") 
    { 
     cout << name1 << " "; 
     if ("name2" > "name3") 
     { 
      cout << name2 << " " << name3 << endl; 
     } 
     else 
     { 
      cout << name3 << " " << name2 << endl; 
     } 
    } 
    else if ("name2" > "name1" && "name2" > "name3") 
    { 
     cout << name2 << " "; 
     if ("name1" > "name3") 
     { 
      cout << name1 << " " << name3 << endl; 
     } 
     else 
     { 
      cout << name3 << " " << name1 << endl; 
     } 
    } 
    else if ("name3" > "name1" && "name3" > "name2") 
    { 
     cout << name3 << " "; 
     if ("name1" > "name2") 
     { 
      cout << name1 << " " << name2 << endl; 
     } 
     else 
     { 
      cout << name2 << " " << name1 << endl; 
     } 
    } 
    else 
    { 
     cout << "nothing happened....." << endl; 
    } 
+2

你想'strcmp()'。 –

+1

通過將'name1'放在引號中,您可以將它寫入文字中,而不是將其用作程序變量。 – Galik

+1

如果我的名字長於9個字符會怎麼樣? –

回答

0

在C++中,你不能比較使用>和<運營商的字符串。查看運行時庫中的字符串函數。從這些,你想要字符串比較函數strcmp()。下面是documentation的最後一個完整例子。

相關問題