HJ13. 句子逆序
描述
将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
输入描述
输入一个英文语句,每个单词用空格隔开。保证输入只包含空格和字母。
输出描述
得到逆序的句子
示例1
输入:
I am a boy
输出:
boy a am I
示例2
输入:
nowcoder
输出:
nowcoder
C 解法, 执行用时: 1ms, 内存消耗: 224KB, 提交时间: 2018-08-13
#include <stdio.h> #include <string.h> int main() { char str[10000]; int a,len,i; gets(str); len = strlen(str); for(i=len-1;i>=0;i--) { if(str[i]==' ') { a = i+1; while(str[a]!=' ') { if(a==len) break; printf("%c", str[a]); a++; } printf(" "); } } i=0; while(str[i]!=' ') { printf("%c",str[i]); i++; } return 0; }
C 解法, 执行用时: 1ms, 内存消耗: 256KB, 提交时间: 2020-07-07
#include "stdio.h" int main() { char s[10000] = {0}; char chr = 0; int len = 0; int flag = 0; int end=0,start=0; while (1) { scanf("%c", &chr); if (chr == '\n') break; s[len++] = chr; } for (int i=len;i>0;i--) { if (s[i-1] != ' ') // { if (flag == 0) { flag = 1; end = i; } } else { // if (flag == 1) { flag = 0; start = i; for (int j=start;j<end;j++) printf("%c",s[j]); printf(" "); start = 0; end = 0; } } if (i==1) { for (int j=start;j<end;j++) printf("%c",s[j]); printf("\n"); } } }