共计 845 个字符,预计需要花费 3 分钟才能阅读完成。
题目描述
请输入字符串,最多输入 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
思路:字符串数组逆序输出的问题,用二维字符数组表示一个字符串数组。注意点是只需要输出四个,输入第 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;
}
正文完