| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 491 人关注过本帖
标题:路过的大侠们进来帮忙解释一下加粗的那几句话,谢谢了
只看楼主 加入收藏
a632034079
Rank: 2
等 级:论坛游民
帖 子:115
专家分:34
注 册:2009-10-3
结帖率:86.11%
收藏
已结贴  问题点数:20 回复次数:5 
路过的大侠们进来帮忙解释一下加粗的那几句话,谢谢了
加粗的那几句话不能理解,帮忙解释下,谢谢了啊

#include <iostream.h>
#include <string.h>

void convto(char *s,int n,int b)
{
    char bit[] = {"0123456789ABCDEF"};
    int len;
    if(n == 0)
    {
        strcpy(s,"");
        return;
    }
    convto(s,n/b,b);
    len = strlen(s);
    s[len] = bit[n%b];
    s[len+1] = '\0';

}

void main()
{
    char s[80];
    int i,base,old;
    cout << "请输入10进制数:";
    cin >> old;
    cout << "请输入转换的进制:";
    cin >> base;
    convto(s,old,base);
    cout << s << endl;
    cin.get();
}
搜索更多相关主题的帖子: 解释 
2010-03-16 15:40
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:15 
这个函数是将10进制数转换成其他进制数(应该是2~16进制数).这是个递归调用!
void convto(char *s,int n,int b)
{
    char bit[] = {"0123456789ABCDEF"};
    int len;
    if(n == 0)
    {
        strcpy(s,"");
        return;
    }
    convto(s,n/b,b); //递归调用
    len = strlen(s);   //从此以下3行代码,实际上是在n==0以后返回过程中执行
    s[len] = bit[n%b]; //将n除以b的余数以字符形式存入s的一个元素中.
    s[len+1] = '\0';
}

★★★★★为人民服务★★★★★
2010-03-16 17:37
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:5 
    convto(s,n/b,b); 函数传参  而且是本身的函数 所以为递归
    len = strlen(s);    strlen()是一个函数 它的形参是一个char *  是一个检测 字符串数组的长度函数 由于形参为指针所以会在'\0'处结束
    s[len] = bit[n%b];
    s[len+1] = '\0';
我很奇怪 程序运行到convto(s,n/b,b); 直接循环进入函数
当满足if条件时 直接跳出 进入main()主函数
len = strlen(s);
    s[len] = bit[n%b];
    s[len+1] = '\0';这段代码完全不会执行啊

2010-03-16 19:53
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
回复 3楼 hahayezhe
你对递归的理解还不够啊!

★★★★★为人民服务★★★★★
2010-03-16 20:30
haoliliang88
Rank: 1
等 级:新手上路
帖 子:26
专家分:3
注 册:2010-3-12
收藏
得分:0 
<< 是什么意思
2010-03-16 23:53
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
回复 5楼 haoliliang88
那段关键代码怎么会不执行呢?

★★★★★为人民服务★★★★★
2010-03-17 06:18
快速回复:路过的大侠们进来帮忙解释一下加粗的那几句话,谢谢了
数据加载中...
 
   



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

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