1618 - 编排字符串

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

请输入字符串,最多输入个字符串,要求后输入的字符串排在前面,例如

输入: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

C语言解答

#include<stdio.h>
int main()
{
	char str[101][21];
	int n,i,j;
	scanf("%d\n",&n);
	for(i=0;i<n;i++)
	{
		gets(str[i]);
		for(j=1;j<=i+1;j++)
		{
			printf("%d=%s",j,str[i-j+1]);
			if(j!=i+1&&j!=4)
				printf(" ");
			if(j==4)
				break;
		}
		printf("\n");
	}
	return 0;
}

C++解答

#include <cstdio>
#include <vector>
#include <string>
#include <iostream>
using namespace std;

int main() {
    //freopen("data.in", "r", stdin);
    //freopen("data.out", "w", stdout);
    int t;
    vector < string > vs;
    string s;
    cin >> t;
    while (t--) {
        cin >> s;
        vs.push_back(s);
        if (vs.size() > 4)
            vs.erase(vs.begin());
        int cnt = 1;
        for (vector < string >::reverse_iterator it = vs.rbegin(); it != vs.rend(); ++it, ++cnt) {
            if (1 != cnt) cout << " ";
            cout << cnt << "=" << *it;
        }
        cout << endl;
    }
    return 0;
}