2 条题解
-
0
考虑简单的写法
- 将每个单词读入后反转,再输出即可
- 使用 while(cin>>s) 死循环读入,一直到没有元素输入截至,控制台可以使用Ctrl+Z 截至输入。
#include <bits/stdc++.h> using namespace std; typedef long long LL; const int N = 1e3 + 10, INF = 0x3f3f3f3f; int main() { string s; int cnt=0; while (cin >> s) { reverse(s.begin(), s.end()); if(cnt) cout<<" "; cout << s; cnt ++; } return 0; }
-
0
#include <stdio.h> #include <string.h> int main() { int len,p,sum=0,i,j; char s[501]= {0}; fgets(s,501,stdin); //输入 len = strlen(s); s[len-1] = ' '; //末尾加一空格方便计算 for(i=0; i<=len-1; i++) { if(s[i] != ' ') { sum++; //非空格,记录字母个数 } else { p=i-1; //此时的s[i]为空格,则s[i-1]为字母,从s[i-1]起往前走输出sum个字母 for(; sum>0; sum--) { //倒序输出 printf("%c", s[p--]); } sum = 0; //字母数归零 if(i != len-1) printf(" "); //此时的s[i]是空格的话,就会输出空格 } } printf("\n"); return 0; }
- 1
信息
- ID
- 154
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- 递交数
- 123
- 已通过
- 14
- 上传者