本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。 输入格式: 输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。 输出格式: 输出为排序后的结果,每个单词后面都额外输出一个空格。 输入样例: blue red yellow green purple #
时间: 2023-06-08 18:06:23 浏览: 115
编写一个对输入的英文单词按照字典排序的程序,界面如图,当在一个文本域输入若干个英文字单词,单击字典排序按钮,另一个文本域
回车结束。当输入空行时,表示输入结束。
输出格式: 输出按照长度从小到大排序后的单词,每行一个。
程序设计思路:
1. 输入需要排序的单词,直至输入空行为止。
2. 对输入的单词按照长度进行排序。
3. 输出排序后的单词。
4. 如果单词长度相同,则按照输入的顺序输出。
代码参考:
```
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool cmp(string a, string b) {
if (a.size() == b.size()) {
return a < b;
}
else {
return a.size() < b.size();
}
}
int main() {
vector<string> words; //存储输入的单词
string word;
while (getline(cin, word) && !word.empty()) { //输入单词,直至输入空行为止
words.push_back(word);
}
sort(words.begin(), words.end(), cmp); //按照长度排序
for (int i = 0; i < words.size(); i++) { //输出排序后的单词
cout << words[i] << endl;
}
return 0;
}
```
阅读全文