For each list of words, output a line with each word reversed without changing the order of the words.
This problem contains multiple test cases!
The first line of a multiple input is an integer N, then a blank line followed by N input blocks. Each input block is in the format indicated in the problem description. There is a blank line between input blocks.
The output format consists of N output blocks. There is a blank line between output blocks.
Input
You will be given a number of test cases. The first line contains a positive integer indicating the number of cases to follow. Each case is given on a line containing a list of words separated by one space, and each word contains only uppercase and lowercase letters.
Output
For each test case, print the output on one line.
Sample Input
1
3
I am happy today
To be or not to be
I want to win the practice contest
Sample Output
I ma yppah yadot
oT eb ro ton ot eb
I tnaw ot niw eht ecitcarp tsetnoc
http://blog.csdn.net/AC_0_summer/article/details/44747401
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;
char s[500];
void _S()
{
int L=0;
s[L++]=getchar();
while(s[L-1]!='\n'){
if(s[L-1]==' ')
{
for(int i=L-2;i>=0;i--)
putchar(s[i]);
printf(" ");
L=0;
}
s[L++]=getchar();
}
for(int i=L-2;i>=0;i--)
putchar(s[i]);
printf("\n");
return ;
}
int main()
{
int n,T;
scanf("%d",&T);
while(T--){
scanf("%d\n",&n);//过滤换行符
while(n--) _S();
if(T) printf("\n"); //此题容易因为此处PE
}
return 0;
}
zoj1295:
#include<cstdio> #include<cstdlib> #include<iostream> using namespace std; void _S() { char s[71]; int num=0; char c=getchar(); while(true){ if(c=='\n'){ for(int i=num;i>=1;i--) cout<<s[i]; cout<<endl; return ; } s[++num]=c; c=getchar(); } } int main() { int n; scanf("%d\n",&n); while(n--) _S() return 0; }
为什么感觉题目没有解释很清楚,让那么多人PE。。。。。。。。。。。
当然本题处理方式有很多,也可以每一行输入后再处理。个人属于习惯单个字符输入的那种(此时要注意过滤换行符什么的)。