NOI / 1.10编程基础之简单排序 10:单词排序 c++(简单)
一行单词序列,最少1个单词,最多100个单词,每个单词长度不超过50,单词之间用至少1个空格间隔。数据不含除字母、空格外的其他字符。输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照字典序输出这些单词,要求重复的单词只输出一次。按字典序输出这些单词,重复的单词只输出一次。
·
描述
输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照字典序输出这些单词,要求重复的单词只输出一次。(区分大小写)
输入
一行单词序列,最少1个单词,最多100个单词,每个单词长度不超过50,单词之间用至少1个空格间隔。数据不含除字母、空格外的其他字符。
输出
按字典序输出这些单词,重复的单词只输出一次。
样例输入
She wants to go to Peking University to study Chinese
样例输出
Chinese Peking She University go study to wants
#include <bits/stdc++.h> // 万能头文件,包含C++标准库的所有头文件
using namespace std; // 使用标准命名空间
int main() {
int c = 0; // 计数器,用于记录输入的字符串个数
string s[101]; // 字符串数组,存储输入的字符串
// 循环输入字符串数组s,直到遇到空字符串为止
for (; cin >> s[c]; c++);
// 对字符串数组s进行冒泡排序,按照字典序从小到大排序
for (int i = 0; i < c - 1; i++)
for (int j = i + 1; j < c; j++)
if (s[i] > s[j]) // 如果前一个字符串大于后一个字符串
swap(s[i], s[j]); // 交换两个字符串的位置
// 输出排序后的第一个字符串
cout << s[0] << endl;
// 输出排序后的剩余字符串(不包括第一个字符串)
for (int i = 0; i < c - 1; i++)
if (s[i] != s[i + 1]) // 如果当前字符串与下一个字符串不相等
cout << s[i + 1] << endl; // 输出下一个字符串
return 0; // 程序正常结束
}
更多推荐
所有评论(0)