为什么能运行却得不到结果呢??

eric491179912 eric491179912 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
大家好我是新手,写了一个递归方法的二进制数转十进制数的程序,输入整数结果正确,用win-tc编译通过点运行输入小数部分就出问题了,窗口立刻消失,麻烦大家看看处理小数部分的递归函数哪里出了问题..谢谢!!

#include "Stdio.h"

int integer(int zhengshu);

float decimal(float xiaoshu);



int main(void)
{
float n,xs;

int zs;

printf("\n enter 2 jinzhi:");

scanf("%f",&n);

zs=(int)n;

xs=n-zs;

printf("\n10 jinzhi:");

printf("%f",(integer(zs)+ decimal(xs)));

getch();



}








int integer(int zhengshu) /* 处理整数部分*/
{
static int m,t1=1,sum1=0; /*m为各位数,t为各位权值*/

m=zhengshu%10;

if((zhengshu/10)!=0)
{

sum1+=m*t1;

t1*=2;

integer(zhengshu/10);

}


else if((zhengshu/10)==0)

{

return sum1+m*t1;

}


}












float decimal(float xiaoshu)
{
static int t2=2;

static float sum2=0;

int n;

float f;



if(xiaoshu>0)
{

f=xiaoshu*10;



n=(int)f;

sum2+=n/t2;

t2*=2;

f=f-n;

decimal(f);

}

else if(xiaoshu==0)

return sum2;


}


...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
eric491179912
C语言 70,039 成员 243,237 内容