p1205单词翻转-递归解决

题目描述 Description

给出一个英语句子,希望你把句子里的单词顺序都翻转过来

输入描述 Input Description

输入包括一个英语句子。

输出描述 Output Description

按单词的顺序把单词倒序输出

样例输入 Sample Input

I love you

样例输出 Sample Output

you love I

/*
作者:1c3z
题目:p1205 单词翻转
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void fun(char *str, int low, int hi)
{
    if(low < -1)
    {
        return;
    }
    //判断是不是空格,或者到句末了
    if(low == -1 || str[low] == ‘ ‘ )
    {
        int i;
        for(i = low + 1; i < hi; i++)
        {
            printf("%c", str[i]);
        }
        //最后一个单词后面不应该有空格
        if(low != -1)
        {
            printf(" ");
        }

        fun(str, low - 1, low);
    }
    else
    {
        fun(str, low - 1, hi);
    }
}

int main()
{

    char str[100] = {‘\0‘};
    int len;
    gets(str);
    len = strlen(str);
    fun(str, len - 1, len);

    return 0;
}
时间: 2024-11-05 14:58:11

p1205单词翻转-递归解决的相关文章

Openjudge-计算概论(A)-单词翻转

描述: 输入一个句子(一行),将句子中的每一个单词翻转后输出. 输入只有一行,为一个字符串,不超过500个字符.单词之间以空格隔开.输出翻转每一个单词后的字符串,单词之间的空格需与原文一致. 样例输入 hello world 样例输出 olleh dlrow思路:从头到尾扫描字符串,遇到空格,翻转前面的,再回来继续就得了.注意:输入要用gets()函数代码如下: 1 #include<stdio.h> 2 #include<string.h> 3 void daoxu(char t

汉诺塔递归解决方法经典分析

一位法国数学家曾编写过一个印度的古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针.印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔.不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面.僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔.庙宇和众生也都将同归于尽. 虽然这只是一个传说,但也给我们提出了一个问题,

单词翻转

1205 单词翻转 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 青铜 Bronze 题目描述 Description 给出一个英语句子,希望你把句子里的单词顺序都翻转过来 输入描述 Input Description 输入包括一个英语句子. 输出描述 Output Description 按单词的顺序把单词倒序输出 样例输入 Sample Input I love you 样例输出 Sample Output you love I

4104:单词翻转

4104:单词翻转 总时间限制:  1000ms 内存限制:  65536kB 描述 输入一个句子(一行),将句子中的每一个单词翻转后输出. 输入 只有一行,为一个字符串,不超过500个字符.单词之间以空格隔开. 输出 翻转每一个单词后的字符串,单词之间的空格需与原文一致. 样例输入 hello world 样例输出 olleh dlrow代码: #include<stdio.h> #include<string.h> int main() { char str[501],anti

1205 单词翻转

1205 单词翻转 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 青铜 Bronze 题解 题目描述 Description 给出一个英语句子,希望你把句子里的单词顺序都翻转过来 输入描述 Input Description 输入包括一个英语句子. 输出描述 Output Description 按单词的顺序把单词倒序输出 样例输入 Sample Input I love you 样例输出 Sample Output you love I 数据范围及提示 Data Size

递归解决换零钱问题--回顾总结之递归的表达能力

前面为了保持叙述的流畅,没有做太多的引申,把总结推迟到了后面. 补上一些总结,以防止出现"下面呢?下面没有了"的尴尬. 方向性问题 虽然题目在一开始就暗示了这一点,但首先,我们还是要问,它能用递归解决吗? 有点怀疑精神是好的,既要低头走路,更要抬头看路,以防止发生方向性错误,导致缘木求鱼的后果. 说这个问题能用递归解决,这种信心或者判断的依据来自于哪呢? 有人可能知道了,换零钱这个问题在<计算机程序的构造和解释>(SICP:Structure and Interpretat

27:单词翻转

27:单词翻转 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 输入一个句子(一行),将句子中的每一个单词翻转后输出. 输入 只有一行,为一个字符串,不超过500个字符.单词之间以空格隔开. 输出 翻转每一个单词后的字符串,单词之间的空格需与原文一致. 样例输入 hello world 样例输出 olleh dlrow 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio

AC日记——单词翻转 1.7 27

27:单词翻转 总时间限制:  1000ms 内存限制:  65536kB 描述 输入一个句子(一行),将句子中的每一个单词翻转后输出. 输入 只有一行,为一个字符串,不超过500个字符.单词之间以空格隔开. 输出 翻转每一个单词后的字符串,单词之间的空格需与原文一致. 样例输入 hello world 样例输出 olleh dlrow 思路: 大模拟: 来,上代码: #include<cstdio> #include<string> #include<cstring>

单词翻转——超时代码

Q:单词翻转 总时间限制:1000ms内存限制:65536kB 描述 输入一个句子(一行),将句子中的每一个单词翻转后输出. 输入只有一行,为一个字符串,不超过500个字符.单词之间以空格隔开.输出翻转每一个单词后的字符串,单词之间的空格需与原文一致.样例输入 hello world 样例输出 olleh dlrow S: #include <stdio.h> #include<string.h> int main() { char sen[713]; //char temp[10