| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 10380 人关注过本帖
标题:"利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来"显示无法执 ...
只看楼主 加入收藏
saintkobe
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-5-9
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:10 
"利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来"显示无法执行程序
#include <stdio.h>
main()
{
    int i=5;
    void palin(int n);
    printf("\40:");
    palin(i);
    printf("\n");
}
void palin(int n)
{
    char next;
    if(n<=1)
    {
        next=getchar();
        printf("\n\0:");
        putchar(next);
    }
    else
    {
        next=getchar();
    palin(n-1);
    putchar(next);
    }
   
}

显示无法执行程序,什么原因啊?在tc下正常,但是vc6就显示无法执行程序

[ 本帖最后由 saintkobe 于 2010-8-5 21:11 编辑 ]
搜索更多相关主题的帖子: 顺序 函数 执行程序 递归 
2010-08-04 23:22
Rexfield
Rank: 6Rank: 6
来 自:幻想乡
等 级:侠之大者
威 望:1
帖 子:240
专家分:484
注 册:2010-7-28
收藏
得分:4 
程序代码:
#include <stdio.h>

void palin(int n);

int main(void)
{
    int i=5;
    palin(i);
    printf("\n");
    return 0;
}

void palin(n)
int n;          //这样写是否因为那帖子的缘故?
{
    char next;
    if(n<=1)
    {
        next=getchar();
        printf(":");
        putchar(next);
    }
    else
    {
        next=getchar();
        palin(n-1);
        putchar(next);
    }

}

If you're not failing every now and again, it's a sign you're not doing anything very innovative.
2010-08-04 23:35
saintkobe
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-5-9
收藏
得分:0 
回复 2楼 Rexfield
原帖是这样写的,我写成void palin(int n)一样显示不能执行程序。
2010-08-04 23:40
Rexfield
Rank: 6Rank: 6
来 自:幻想乡
等 级:侠之大者
威 望:1
帖 子:240
专家分:484
注 册:2010-7-28
收藏
得分:0 
你用的是什么编译器?
我用的是GCC。

If you're not failing every now and again, it's a sign you're not doing anything very innovative.
2010-08-04 23:40
saintkobe
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-5-9
收藏
得分:0 
回复 4楼 Rexfield
vc++ 6.0
2010-08-04 23:43
star5578
Rank: 2
等 级:论坛游民
帖 子:39
专家分:11
注 册:2010-7-31
收藏
得分:4 
程序代码:
这样改就行了,本人亲自帮你测试过哦!!!



#include <stdio.h>
void  palin(int n)
{
    char next;
    if(n<=1)
    {
        next=getchar();
        printf("\n\0:");
        putchar(next);
    }
    else
    {
        next=getchar();
    palin(n-1);
    putchar(next);
    }
   
}



void main()
{
    int i=5;
    printf("\40:");
    palin(i);
    printf("\n");
}
2010-08-05 10:29
andylyop12
Rank: 2
等 级:论坛游民
帖 子:10
专家分:17
注 册:2010-4-3
收藏
得分:4 
#include <stdio.h>

void palin(int n);
main()
{
    int i=5;
   
    printf("\n");
    palin(i);
    printf("\n");
}
void palin( int n)
{
    char next;
    if(n<=1)
    {
        next=getchar();
        getchar();
       putchar(next);
        printf("\n");
    }
    else
    {
        next=getchar();
        getchar();
    palin(n-1);
    putchar(next);
    putchar('\n');
    }
   
}
楼主代码有点乱,帮着改了下
2010-08-05 12:53
ggyy4k
Rank: 5Rank: 5
等 级:职业侠客
帖 子:111
专家分:334
注 册:2010-6-28
收藏
得分:4 
回复 楼主 saintkobe
楼主很粗心,有两个语法错误,能通过编译除非编译器出鬼了,另外使用getchar()输入是不妥的,要想得到正确结果必须几个字符连续输入不能有空格、回车,在连续输入的时候最好使用scanf函数。
#include <stdio.h>
main()
{
    int i=5;
    void palin(int n);
    printf("\40:);//双引号变成了单引号
    palin(i);
    printf("\n");
}
void palin(n)
int n;
{
    char next;
    if(n<=1)
    {
        next=getchar();
        printf("\n\0:");
        putchar(next);
    }
    else
    {
        next=getchar()://分号变成了冒号
    palin(n-1);
    putchar(next);
    }
   
}
2010-08-05 14:37
saintkobe
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-5-9
收藏
得分:0 
谢谢各位的帮助,上面的代码改过来在VC6下都是无法执行程序,但是tc的话就可以正常运行。不知道是为什么
2010-08-05 21:07
陈大师
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:231
专家分:1038
注 册:2009-11-4
收藏
得分:4 
vc++6.0 下可以执行啊~~~你再试试~
#include <stdio.h>
main()
{
    int i=5;
    void palin(int n);
    printf("\40:");
    palin(i);
    printf("\n");
}
void palin(int n)
{
    char next;
    if(n<=1)
    {
        next=getchar();
        printf("\n\0:");
        putchar(next);
    }
    else
    {
        next=getchar();
    palin(n-1);
    putchar(next);
    }
   
}
2010-08-06 18:38
快速回复:"利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来"显示 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052016 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved