这道题就是给定一个英文句子,把里面的单词按字典序排序,还要去重。排序,我选择冒泡排序,去重,我用C++自带的unique函数,它会返回去重后数组最后一个不重复的数的下标,使用前提是必须排序。
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string s[105], a;
int n = 0;//一定要赋初值,否则“稻花香里说丰年,听取WA声一片”
while (cin >> a)//一个一个读入单词,再放进s里
s[++ n] = a;
for (int i = 1; i < n; i ++)
for (int j = 1; j <= n - i; j ++)
if (s[j] > s[j + 1])
swap(s[j], s[j + 1]);//冒泡排序
n = unique(s + 1, s + 1 + n) - (s + 1);//去重
for (int i = 1; i <= n; i ++)
cout << s[i] << endl;//最后输出答案
//getchar();getchar();
return 0;
}
Be will and be good!