| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 815 人关注过本帖
标题:帮忙看一个进制转换程序
只看楼主 加入收藏
z767900438
Rank: 1
等 级:新手上路
帖 子:17
专家分:8
注 册:2012-7-25
收藏
得分:0 
回复 8楼 jtx0329
它是从最后一个余数开始打印出的。
2012-07-26 12:23
w995612220
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:139
专家分:313
注 册:2012-6-20
收藏
得分:2 
#include<stdio.h>     //十装换为16进制以下任意进制
int main()
{   void  f(int i,int n);
       for(;;)
       {
        int i,n;
        printf("请输入一个int型的十进制整数:");
        scanf("%d",&i);
        printf("请输入要转换的进制:");
        scanf("%d",&n);

        if(i==0) printf("该数的%d进制数为:0");

        else  if(n!=0)   {printf("\n该数的%d进制数为:",n);    f(i,n); }
        else printf("输入错误");

        printf("\n");
        printf("\n");
       }

return 0 ;

}

//递归函数
void f(int i,int n)
{   int p;
    char bit[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
        if(i==0)
        return ;
         p=i%n;
         f(i/n,n);      
        printf("%c",bit[p]);
}//没有注意到你的char,作用,重新发一份。
2012-07-26 16:34
LShang
Rank: 4
来 自:China
等 级:业余侠客
威 望:3
帖 子:183
专家分:258
注 册:2010-12-24
收藏
得分:1 
递归函数的退出判断有问题
n不是需转换的进制数吗?
每次递归调用n都没变
所以递归函数无限循环了,栈溢出是一定的。。。

学如逆水行舟,不进则退
士不可以不弘毅,任重而道远
2012-07-26 17:09
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:1 
回复 7楼 z767900438
我说过了,让你对比一下,为啥二楼代码可以执行,你的却是段错误,象十三楼说的你能明白吗?

[ 本帖最后由 embed_xuel 于 2012-7-26 18:12 编辑 ]

总有那身价贱的人给作业贴回复完整的代码
2012-07-26 18:11
z767900438
Rank: 1
等 级:新手上路
帖 子:17
专家分:8
注 册:2012-7-25
收藏
得分:0 
回复 13楼 LShang
对啊,看来我马虎了,多谢了
2012-07-26 18:15
z767900438
Rank: 1
等 级:新手上路
帖 子:17
专家分:8
注 册:2012-7-25
收藏
得分:0 
回复 12楼 w995612220
谢谢了,我写错了那判断条件是i==0,马虎了
2012-07-26 18:28
z767900438
Rank: 1
等 级:新手上路
帖 子:17
专家分:8
注 册:2012-7-25
收藏
得分:0 
回复 14楼 embed_xuel
知道了,大意了,写错了判断条件,谢谢了
2012-07-26 18:29
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 17楼 z767900438
我希望你能通过这个总结一些学习方法

总有那身价贱的人给作业贴回复完整的代码
2012-07-26 18:56
小无相
Rank: 2
等 级:论坛游民
帖 子:35
专家分:39
注 册:2012-7-24
收藏
得分:0 
void f(int i,int n)
{
        int p;
        if(i==0)
        return ;
         p=i%n;
         f(i/n,n); //递归调用的时候不是每一次都不调用下面的语句,而只有最后的一次才调用,顺序搞不明白
        printf("%1d",p);
}
2012-07-26 20:21
快速回复:帮忙看一个进制转换程序
数据加载中...
 
   



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

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