版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42449444/article/details/90603405
请输入字符串,最多输入4 个字符串,要求后输入的字符串排在前面,例如
输入:EricZ
输出:1=EricZ
输入:David
输出:1=David 2=EricZ
输入:Peter
输出:1=Peter 2=David 3=EricZ
输入:Alan
输出:1=Alan 2=Peter 3=David 4=EricZ
输入:Jane
输出:1=Jane 2=Alan 3=Peter 4=David
第一行为字符串个数m,接下来m行每行一个字符床,m不超过100,每个字符床长度不超过20。
输出m行,每行按照样例格式输出,注意用一个空格隔开。
5
EricZ
David
Peter
Alan
Jane
1=EricZ
1=David 2=EricZ
1=Peter 2=David 3=EricZ
1=Alan 2=Peter 3=David 4=EricZ
1=Jane 2=Alan 3=Peter 4=David
我一开始想用stack,后来想想不对劲 stack用top+pop取出来栈顶元素后就没啦,还是得用vector来进行逆序输出。注意输出格式,行末不能有多余的空格只需要换行。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int m;
cin >> m;
getchar(); //cin后用getline一定要先getchar()吃回车
vector<string> v;
for (int i = 0; i < m; i++)
{
string str;
getline(cin,str);
v.push_back(str);
int cnt = 0; //用来记录输出的行数,最多输出4行
for(int j = v.size()-1; j >= 0; j--)
{
cnt++;
if(cnt < 5)
{
//只有行末是回车,其它情况都是空格
printf("%d=%s%s", cnt, v[j].c_str(), (j==0||cnt==4 ? "\n":" "));
}
}
}
return 0;
}