PAT 乙级 1009
题目
1009 说反话 (20 分)
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式
测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。
输出格式
每个测试用例的输出占一行,输出倒序后的句子。
输入样例
Hello World Here I Come
输出样例
Come I Here World Hello
我的代码
#include<iostream>
using namespace std;
int revsal(char* a,int start,int end){
if(start==end){
return 0;
}
for(int i=start;i<=(start+end)/2;i++){
char t=a[i];
a[i]=a[end-(i-start)];
a[end-(i-start)]=t;
}
return 0;
}
int main(){
char b[101];
cin.getline(b,100);
int i=0,j=0;
while(b[i]){
for( j=i;b[j]!=' '&&b[j]!='\0';j++){
}
revsal(b,i,j-1);
if(b[j]==' '){
i=j+1;
}
else{
i=j;
}
}
revsal(b,0,j-1);
cout<<b;
return 0;
}