c语言编程:把一个十进制的数转换成二进制的数

#include<stdio.h>#include<math.h>inttrans2(intx)//转换为二进制的函数{intm=x,n,b=0,i=0;while(m>... #include <stdio.h>
#include <math.h>

int trans2(int x) //转换为二进制的函数
{
int m=x,n,b=0,i=0;
while(m>0)
{
n=m%2;
m/=2;
b+=n*pow(10,i);
i++;
}
return b;
}
这是我写的,但是构建.exe的时候出现一个错误,请问高手错在哪里
展开
 我来答
0o闭关修炼o0
推荐于2016-03-09 · TA获得超过214个赞
知道答主
回答量:109
采纳率:0%
帮助的人:87万
展开全部
没有仔细看你的逻辑是否正确,如果你只是想把程序调试通过的 话
把b+=n*pow(10,i); 改成b+=n*(int)pow(10,i); 就可以了;
貌似pow()返回的是一个double类型的,所以你赋值的时候有一个警告;
再加上main()函数就可以编译通过了.
eagleboycn
2008-03-23 · 超过45用户采纳过TA的回答
知道答主
回答量:146
采纳率:0%
帮助的人:144万
展开全部
int trans2(int x) //转换为二进制的函数
{
int m=x,n,b=0,i=0;
while(m>1) //只有m=1或者0时候才结束
{
n=m%2;
b+=n*pow(10,i);
++i;
m/=2;
}
b+=m*pow(10,i+1);//加上尾数
return b;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Wenjinguang
2008-03-23 · TA获得超过642个赞
知道小有建树答主
回答量:214
采纳率:52%
帮助的人:145万
展开全部
这是因为缺少了主函数,加上以下一个主函数就可以了。
void main()
{ int a,b;
printf("请输入一个十进制数:");
scanf("%d",&a);
b=trans2(a);
printf("%d",b);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chyy825
2008-03-24 · 超过13用户采纳过TA的回答
知道答主
回答量:38
采纳率:0%
帮助的人:0
展开全部
没有main函数是编译不出可执行文件的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒懂百科精选
高粉答主

2020-12-25 · 每个回答都超有意思的
知道答主
回答量:60.8万
采纳率:14%
帮助的人:3.2亿
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式