没有仔细看你的逻辑是否正确,如果你只是想把程序调试通过的 话
把b+=n*pow(10,i); 改成b+=n*(int)pow(10,i); 就可以了;
貌似pow()返回的是一个double类型的,所以你赋值的时候有一个警告;
再加上main()函数就可以编译通过了.
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;
}
这是因为缺少了主函数,加上以下一个主函数就可以了。
void main()
{ int a,b;
printf("请输入一个十进制数:");
scanf("%d",&a);
b=trans2(a);
printf("%d",b);
}
没有main函数是编译不出可执行文件的