浙江理工大学入队200题——14J
问题 J: 零基础学C/C++155——句子比较大小
题目描述
从键盘输入几个句子(每个句子最多31个字符),对这几个句子按从小到大的顺序输出。
输入
有多组测试数据。 每组测试数据第一行是一个整数n(1 <= n <= 10),表示后面有n个句子 然后是n行,每行一个句子。
输出
对于每组数据输出n行,分别是这n个句子按找从小到大排序后的.每两组之间有一个空行
样例输入 Copy
3
I am a student.
We are all good.
How are you?
样例输出 Copy
How are you?
I am a student.
We are all good.
提示
句子的大小为字典序的大小,不是句子的长度。
题解
这道题不能连用scanf函数,由于scanf函数的特性,连用的话要搭配getchar();原因:>https://blog.csdn.net/ly0303521/article/details/44304867<
而这道题目用getline读入完全没有问题,string 类提供了operator,所以可以直接sort函数解决问题。
听说你给我点赞的样子很帅♪(^∀^●)ノシ (●´∀`)♪
代码(AC)
点击查看代码
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string a[20],c;
int n;
while(cin>>n)
{
getline(cin,c);
for(int i=0;i<n;i++)
{
getline(cin,a[i]);
}
sort(a,a+n);
for(int i=0;i<n;i++) cout<<a[i]<<endl;
cout<<endl;
}
}
本文来自博客园,作者:shany212,转载请注明原文链接:https://www.cnblogs.com/codeshany/p/zstu_200_14J.html