编写一个程序,要求用户输入三个名称,然后显示名称
按字母顺序排序。假设所有名称都不相同。例如,
如果用户输入了Charlie,Leslie和Andy,程序将显示:
安迪
查理
莱斯利
//System Libraries
#include <iostream>
#include <string>//Input/Output Library
using namespace std;
//User Libraries
//Global Constants, no Global Variables are allowed
//Math/Physics/Conversions/Higher Dimensions - i.e. PI, e, etc...
//Function Prototypes
//Execution Begins Here!
int main(int argc, char** argv) {
string name1,
name2,
name3;
cout<<"Sorting Names\n";
cout<<"Input 3 names\n";
cin>>name1;
cin>>name2;
cin>>name3;
cout<<name1<<endl;
cout<<name2<<endl;
cout<<name3;
return 0;
}
预期:
排序·名称↵ 输入·3·名称↵ 安迪↵ 查理↵ 莱斯利
实际:
排序·名称↵ 输入·3·名称↵ 查理↵ 莱斯利↵ 安迪
答案 0 :(得分:0)
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
int main()
{
std::vector<std::string> sortedItems;
{
std::string name1, name2, name3;
std::cout <<"Sorting Names\n";
std::cout <<"Input 3 names\n";
std::cin >> name1;
std::cin >> name2;
std::cin >> name3;
sortedItems.insert(name1);
sortedItems.insert(name2);
sortedItems.insert(name3);
}
std::sort(sortedItems.begin(), sortedItems.end());
for(unsigned i=0; i<sortedItems.size();i++)
{
std::cout << sortedItems[i];
if(i < sortedItems.size() - 1) std::cout << std::endl;
return 0;
}
答案 1 :(得分:0)
int main()
{
std::set<std::string> sortedItems;
for(int i = 1; i <= 5; ++i)
{
std::string name;
std::cout << i << ". ";
std::cin >> name;
sortedItems.insert(name);
}
std::for_each(sortedItems.begin(), sortedItems.end(), &print);
return 0;
}
我发现您可以尝试使用for循环对名称进行排序和吐出。 归功于AngelCastillo,他将其发布到了{@ {3}}