PAT-B-1009

1009. 说反话 (20)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。

输出格式:每个测试用例的输出占一行,输出倒序后的句子。

输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello


刚看到这题时不知道怎么写,先用python应付过去了
ste = raw_input()
print ' '.join(raw_ste.split(' ')[::-1])

 正好没课,用c的二维数组写,感觉写的挺容易理解的

#include<stdio.h>
/*
因为百度搜了比较正常的单词最长45
pneumonoultramicroscopicsilicovolcanoconiosis

*/ int main(){ char ste[80][45]; int i=0,j=0; char c; while((c = getchar()) != '\n'){ if(c == ' '){ i++; j=0; continue; } ste[i][j++] = c; } while(i >= 0){ printf("%s",ste[i--]); if(i != -1) printf(" "); } return 0; }

输入回车结束输入,当输入为空格时 i +1,表示这个单词记录完成,开始记录下一个单词,continue防止空格被记录到第i个单词的后边,结束输入后总共有i+1个单词,最后一个单词下标为i,倒序出即可。(注意:最后一个单词输出后 i = -1)

提交后正确。

续:因为总长度不超过80,而我没有把空格计入,最长单词为45,说明可以省一个空间->ste[79][45](继续思考更方便的方法)。

 


posted on 2018-01-11 14:30  Kn0w_N0ThInG  阅读(119)  评论(0编辑  收藏  举报

导航