普通网友 2016-12-04 01:44 采纳率: 0%
浏览 750

求解答帮忙改正C语言编程

#include
//转化为2进制
void z2(int n)
{
if (n > 1)
{
z2(n / 2);
}
printf("%d", n%2);
}
void z21(float f,int c)
{
float twice;
int tmp;
if (c == 0)
return ;
twice = f * 2;
tmp = (int)twice;
printf("%d", tmp);
z21(twice - tmp, --c);
}
void z211(int zhengshu, float xiaoshu)
{
// 输出整数部分
z2(zhengshu);
if (xiaoshu > 0.000001)
{
printf(".");
}
// 输出小数部分
z21(xiaoshu, 10);
}
void z8(int n)
{
if(n>7)
{
z8(n/8);
}
printf("%d",n%8);
}
void z81(float f,int c)
{
float twice;
int tmp;
if(c==0)
return ;
twice=f*8;
tmp=(int)twice;
printf("%d",tmp);
z81(twice-tmp,--c);
}
void z811(int zhengshu,float xiaoshu)
{
z8(zhengshu);
if(xiaoshu>0.000001)
{
printf(".");
}
z81(xiaoshu,10);
}
char c1[]={0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F'};
void z16(int n)
{
if(n>15)
{
z16(n/16);
}
printf("%c",c1[n%16]);
}
void z161(float f,int c)
{
float twice;
int tmp;
if(c==0)
return ;
twice=f*16;
tmp=(int)twice;
printf("%c",c1[tmp]);
z161(twice-tmp,--c);
}
void z1611(int zhengshu,float xiaoshu)
{
z16(zhengshu);
if(xiaoshu>0.000001)
{
printf(".");
}
z161(xiaoshu,10);
}
void main()
{
float shu = 0;
int zhengshu = 0;
printf("请输入一个十进制数:");
scanf("%f", &shu);
if(shu < 0)
{
printf("-");
shu *= -1;
}
zhengshu = (int)shu;
shu -= zhengshu;
z211(zhengshu,shu);
printf("\n");
z811(zhengshu,shu);
printf("\n");
z1611(zhengshu,shu);
printf("\n");

图片说明

第一张图是该程序输出的,怎么改为第二张图的正确的啊

  • 写回答

2条回答

  • Heleninsa 2016-12-04 01:50
    关注

    能不能把你的函数名换一下,z*1 什么的看不懂你想干什么

    评论

报告相同问题?

悬赏问题

  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法