2 条题解

  • 0
    @ 2025-4-9 10:20:06

    考虑简单的写法

    • 将每个单词读入后反转,再输出即可
    • 使用 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
      @ 2023-12-14 22:02:46
      #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
      上传者