题目描述

请输入字符串,最多输入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行,每行按照样例格式输出,注意用一个空格隔开。

样例输入

5EricZDavidPeterAlanJane

样例输出

1=EricZ1=David 2=EricZ1=Peter 2=David 3=EricZ1=Alan 2=Peter 3=David 4=EricZ1=Jane 2=Alan 3=Peter 4=David

思路:字符串数组逆序输出的问题,用二维字符数组表示一个字符串数组。注意点是只需要输出四个,输入第i(假设i大于4)个字符串后,一次输出的分别是s[i - 0],s[i-1],s[i-2],s[i-3]。按照题目要求的1=s[i - j]的格式输出。用变量first表示是否是第一个,若不是第一个,输出字符串之前要先输出一个空格。

下面是C语言代码。

#include<stdio.h>#include<string.h>int main(){    int n,first,index;    char str[100][100];    while(scanf("%d",&n) != EOF){        for(int i = 0;i < n;i++){            scanf("%s",str[i]);            first = 0;            if(i < 3)                index = i + 1;            else                index = 4;            for(int j = 0;j < index;j++){                if(first)                    printf(" ");                first = 1;                printf("%d=%s",j+1,str[i-j]);            }            printf("\n");        }    }    return 0;}