| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 499 人关注过本帖
标题:递归十进制向七进制转,小白请教大神,出现stack overflow闹哪样,return该 ...
只看楼主 加入收藏
名侦探柯南
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-2-28
结帖率:100%
收藏
已结贴  问题点数:3 回复次数:6 
递归十进制向七进制转,小白请教大神,出现stack overflow闹哪样,return该怎么写
鄙人小白一个,此程序让我头疼,特意请教大神
  如果可以希望大神稍微说一下递归里面return到底怎么搞啊,万分感激
#include<stdio.h>
#include<stdlib.h>

int main(void)
{
    int transf(int x);

    int n,m;

    printf("欢迎使用十进制向七进制转换程序\n\n请输入一个十进制整数\n");
    scanf("%d",&n);
    m=transf(n);
    printf("用七进制表示为%d\n",m);
    system("pause");
    return 0;
}   /*end main*/



int transf(int x)
{
    int b;
    b=x%7;
    x=x/7;
    if(x=0)
    {
        return 1;
    }
    else
    {  
        return(transf(x));
    }

}       /*end transf*/
搜索更多相关主题的帖子: include return system 十进制 
2014-04-08 20:54
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
if(x=0)
改为
if(x==0)

总有那身价贱的人给作业贴回复完整的代码
2014-04-08 20:59
名侦探柯南
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-2-28
收藏
得分:0 
回复 2楼 embed_xuel
唔,的确不会出现之前的那个了,但是递归出来的结果还不是很正常,请教大神这个return应该怎么写
2014-04-08 21:05
Andrew_Lee
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:185
专家分:626
注 册:2014-3-21
收藏
得分:2 
感觉你的那个思路有点小问题,我根据你的程序改的:
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main(void)
{
    int transf(int x);

    int n,m;
    int result=0;
    int i=0;

    printf("欢迎使用十进制向七进制转换程序\n\n请输入一个十进制整数\n");
    scanf("%d",&n);

    while(n>=7)
    {
        m=transf(n);
        result = result+(int)(m*pow(10,i));
        i++;
        n=n/7;
    }
    result = (int)(n*pow(10,i))+result;


    printf("用七进制表示为%d\n",result);
    system("pause");
    return 0;
}   /*end main*/

int transf(int x)
{
    return (x%7);
}

2014-04-08 21:33
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:1 
//递归十进制向七进制转化
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
    void transf(int x);

    int n,m;

    printf("欢迎使用十进制向七进制转换程序\n\n请输入一个十进制整数\n");
    scanf("%d",&n);
    printf("用七进制表示为:\n");
    transf(n);
    putchar('\n');
    system("pause");
    return 0;
}   /*end main*/

void transf(int x)
{

    if(x==0) return ;
    else
    {
        transf(x/7);
        putchar(x%7+'0');
    }
    return ;
}      
2014-04-08 22:03
Andrew_Lee
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:185
专家分:626
注 册:2014-3-21
收藏
得分:0 
5楼的这个可好,比我的强多了。同时也学习受教了
2014-04-08 22:17
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 3楼 名侦探柯南
结果不对是必然的,你压根就是乱写,代码可以扔掉重写了

总有那身价贱的人给作业贴回复完整的代码
2014-04-09 07:47
快速回复:递归十进制向七进制转,小白请教大神,出现stack overflow闹哪样,ret ...
数据加载中...
 
   



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

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