7-10 英文单词排序
分数 15
作者 张泳
单位 浙大城市学院
本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。
输入格式:
输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。
输出格式:
输出为排序后的结果,每个单词后面都额外输出一个空格。
输入样例:
blue
red
yellow
green
purple
#
输出样例:
red blue green yellow purple
参考代码
#include<iostream>
#include<string>
#include<string.h>
#include <iomanip> //stew(6)用到
using namespace std;
int main()
{
string str[30];
//输入
cin >> str[0];
int n = 1;
while (str[n-1] != "#")
{
cin >> str[n];
n++;
}
n--; //不把 # 留在字符串数组内,方便我们输出
//排序
for (int i = n - 1; i >= 0; i--)
{
for (int j = 0; j < i; j++)
{
if (str[j].size() > str[j + 1].size()) //string类型的长度表示方法
{
string t;
t = str[j];
str[j] = str[j + 1];
str[j + 1] = t;
}
}
}
//输出,注意把长度为1的 # 剔除,这一步我们在输入哪里把#剔除了,是一个巧妙的操作
for (int i = 0; i < n; i++)
{
cout << str[i] << " "; //题目要求每个单词后都要有空格,比较反常
}
return 0;
}
标签:10,string,int,英文单词,str,排序,输入
From: https://www.cnblogs.com/yesno233233/p/18063268