| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 446 人关注过本帖
标题:递归问题???
只看楼主 加入收藏
xufan123
Rank: 5Rank: 5
等 级:职业侠客
帖 子:226
专家分:318
注 册:2010-11-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
递归问题???
这个是求一个字符串和长度
#include<stdio.h>
int len(char *p)
{  int n;
if(*p=='\0') n=0;
else  
n=1+len(p++);
return n;
}
main()
{
    char *a;
    gets(a);
    printf("%d",len(a));
return 0;
   
}
怎么错了啊 ??
搜索更多相关主题的帖子: 递归 
2010-12-21 20:17
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:10 
问题出现在你的gets上

Go Go Go
2010-12-21 21:17
xufan123
Rank: 5Rank: 5
等 级:职业侠客
帖 子:226
专家分:318
注 册:2010-11-15
收藏
得分:0 
我改成
程序代码:
main()
{
int a[100];
gets(a);
printf("%d",fun(a));
getch();
return 0;
}

这个也是错的啊 我试过捏
2010-12-21 21:21
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:10 
程序代码:
#include<stdio.h>
int len(char *p)
{  int n;
if(*p=='\0') n=0;
else 
{
    n=1+len(++p);
}
return n;
}
main()
{
    char *a;
    a=new char[30];
    gets(a);
    printf("%d",len(a));
return 0;
   
}
p指针没有移动   ++p  和 p++ 楼主没有搞清楚

                                         
===========深入<----------------->浅出============
2010-12-21 21:41
xufan123
Rank: 5Rank: 5
等 级:职业侠客
帖 子:226
专家分:318
注 册:2010-11-15
收藏
得分:0 
可以了 上面的有点小错误 其余和还好 a=new char[30];这个东东错误 我用的是TC
  
2010-12-21 21:49
五当家
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1112
专家分:3674
注 册:2010-10-20
收藏
得分:0 
#include<stdio.h>
int len(char *p)
{  int n;
if(*p=='\0') n=0;
else  
n=1+len(++p);        //p++与++p用反了.
return n;
}
main()
{
    char b[30];
    char *a;         //你这里定义a是一个指针,但是你没有让它指向什么.
    a=b;
    gets(a);
    printf("%d",len(a));
return 0;
   
}

经验积累中............
2010-12-21 21:53
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:0 
程序:
程序代码:
#include<stdio.h>
int len(char *p)
{  int n;
static int i=0;
if(*p=='\0') n=0;
else
{
n=1+len(++p);
}
return n;
}

int main(int argc,char **argv)
{
char a[100];
int c;
gets(a);
c=len(a);
printf("%d",c);
return 0;
}


结果:
图片附件: 游客没有浏览图片的权限,请 登录注册



Go Go Go
2010-12-21 21:54
langzilangyu
Rank: 2
等 级:论坛游民
帖 子:8
专家分:10
注 册:2010-11-13
收藏
得分:0 
len(p++);的话 调用的len函数中的p指向的地址一直是输入字符串首地址。
2010-12-21 22:02
快速回复:递归问题???
数据加载中...
 
   



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

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