| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 604 人关注过本帖
标题:哪有错误呀,看不出来呀
只看楼主 加入收藏
宁静的夏天
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2010-7-2
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:8 
哪有错误呀,看不出来呀
题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
#include"stdio.h"
void 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);
    }
}
Compiling...
30.cpp
E:\xyq\30.cpp(17) : error C2018: unknown character '0xa1'
E:\xyq\30.cpp(17) : error C2018: unknown character '0xa1'
Error executing cl.exe.

30.obj - 2 error(s), 0 warning(s)
搜索更多相关主题的帖子: next void character include 
2010-08-07 14:37
苗伊
该用户已被删除
收藏
得分:1 
提示: 作者被禁止或删除 内容自动屏蔽
2010-08-07 15:27
xywx
Rank: 1
等 级:新手上路
帖 子:1
专家分:1
注 册:2010-7-18
收藏
得分:1 
putchar(next); 多余的。都\0了,还打什么啊。
2010-08-07 19:21
狮子。
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:64
专家分:58
注 册:2010-8-1
收藏
得分:1 
大家可以麻烦讲一下
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-08 10:59
erikyo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:270
专家分:1154
注 册:2010-6-10
收藏
得分:1 
似乎是2楼说的问题,怀疑是putchar这行内容里有隐藏字符,导致编译出错。
2010-08-09 09:08
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:1 
解释一下:
void palin(int n)
{
    char next;//定义了字符型的字符next
    if(n<=1)//如果n<=1,n显然是5,所以条件不成立
    {
        next=getchar();
        printf("\n\0:");
        putchar(next); 
    }
    else//否则
    {
        next=getchar();//用户给next一个字符
        palin(n-1);//调用自己,直到n<=1为之,自己代入
        putchar(next);
    }
}

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-08-09 09:12
sinoautom
Rank: 2
等 级:论坛游民
帖 子:13
专家分:24
注 册:2010-8-9
收藏
得分:1 
以下是引用xywx在2010-8-7 19:21:04的发言:

putchar(next); 多余的。都\0了,还打什么啊。


解释一下,为什么是多余的?不了解~
2010-08-09 14:33
小强十五号
Rank: 1
等 级:新手上路
帖 子:4
专家分:2
注 册:2010-8-9
收藏
得分:1 
本人觉得,那不是多余的。那一行代码是输出当n = 1时所输入的字符。
而else的putchar(next);则是递归返回时(也就是说当n > 1时的输出字符代码)。
而楼主的错误原因,本人虽然不知道,但是我把您的代码的putchar(next); (if里面的)删除后再重新键入错误就消失了。
(当然一开始是跟楼主上述的一样的错误),估计是如二楼所说。楼主写代码时误用了TAB进行换行吧。
2010-08-09 16:57
promising
Rank: 3Rank: 3
来 自:上海
等 级:论坛游侠
帖 子:87
专家分:147
注 册:2009-8-31
收藏
得分:1 
if(n<1)//////////////////////
    {
 //       next=getchar();///////////////////
        printf("\n\0:");
 //       putchar(next); ////////////////////
    }
    else
    {
        next=getchar();
        palin(n-1);
        putchar(next);
    }
这样就没错了~
不解的是:为什么只执行了3次~不是有5次吗?望高手指教~


[ 本帖最后由 promising 于 2010-8-9 17:55 编辑 ]

向前走着……
2010-08-09 17:52
快速回复:哪有错误呀,看不出来呀
数据加载中...
 
   



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

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