一、题目
描述
将一个英文语句以单词为单位逆序排放。例如I am a boy逆序排放后为boy a am I。所有单词之间用一个空格隔开。语句中除了英文字母外,不再包含其他字符。
数据范围
输入的字符串长度满足 1<=n<=1000
输入
输入一个英文语句,每个单词用空格隔开。保证输入只包含空格和字母
输出
得到逆序的句子
二、思路
将英文语句一次性读入,存到一个字符数组中
设置L和R变量,分别表示最后一个单词的左右边界
打印最后一个单词
调整L和R,使其分别表示倒数第二个单词的左右边界
以此类推
三、自己写的代码
#include<stdio.h>
int main() {char line[1002];int l, r, i;fgets(line, 1002, stdin);i = 0;while (line[i] != 10 && line[i] != '\0') {i++;}r = i - 1;while (1) {l = r;while (line[l] != ' ' && l >= 0) {l--;}if (l < 0) {for (i = 0; i <= r; i++) {printf("%c", line[i]);}break;}if (line[l] == ' ') {for (i = l + 1; i <= r; i++) {printf("%c", line[i]);}printf(" ");r = l - 1;}}return 0;
}