编写程序对 12 个月的英文单词根据字典序进行从小到大的排序,请使用 string 向量实现。
/*====================================================================================
*学号:1527403059
*作业:E03
*功能:编写一个程序对12个月的英文单词根据字典序进行从小到大的排序,请使用string向量实现
*作者:陆胤任
*日期:2016.3.8
*====================================================================================*/
#include<iostream>
#include<vector>
#include<sstream>
#include<string>
using namespace std;
int main()
{
vector<string> a; //定义向量,为string类型
a.push_back("January"); //一次将值赋给向量a
a.push_back("February");
a.push_back("March");
a.push_back("April");
a.push_back("May");
a.push_back("June");
a.push_back("July");
a.push_back("August");
a.push_back("September");
a.push_back("October");
a.push_back("November");
a.push_back("December");
for(int i=0;i<11;i++) //循环选择排序,按字典序排
{
int min=i;
for(int j=i+1;j<12;j++)
{
string t;
if(a[j]<a[min])
{
t=a[j];
a[j]=a[min];
a[min]=t;
}
string temp;
if(min!=i)
{
temp=a[min];
a[min]=a[i];
a[i]=temp;
}
}
}
cout<<"按字典序排序:"<<endl;
for(int i=0;i<12;i++) //循环将向量中的元素输出
{
cout<<a[i]<<endl;
}
cout<<endl;
vector<int> b(12);
for(int i=0;i<12;i++)
{
b[i]=a[i].length(); //保存月份长度的向量
}
for(int i=0;i<11;i++)
{
for(int j=i+1;j<12;j++)
{
if(b[i]<b[j])
{
swap(b[i],b[j]); //交换两向量
swap(a[i],a[j]);
}
}
}
cout<<"按照长度排序:"<<endl;
for(int i=0;i<12;i++)
{
cout<<a[i]<<endl;
}
return 0;
}