#include<stdio.h>
#include<math.h>
int h(double n);
int main()
{
double n;
printf("Please enter a binary number:\n");
scanf("%ld",&n);
printf("%d",h(n));
return 0;
}
int h(double n)
{
int decimalnumber=0,i=0,remainder;
while(n!=0)
{
remainder=n%10;
n=n/10;
decimalnumber+=remainder*pow(2,i);
++i;
}
return decimalnumber;
}
代码是这样的,为什么程序在编译时会报错?

写一个二进制和十进制的转换h函数,输入一个二进制数,输出相应的十进制数
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注
因为
double
类型是双精度,需要将输入数据类型改为int
,如有帮助,希望采纳一下#include<stdio.h> #include<math.h> int h(int n); int main() { int n; printf("Please enter a binary number:\n"); scanf("%d",&n); printf("%d",h(n)); return 0; } int h(int n) { int decimalnumber=0,i=0,remainder; while(n!=0) { remainder=n%10; n=n/10; decimalnumber+=remainder*pow(2,i); ++i; } return decimalnumber; }
如有帮助,希望采纳一下
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 大一Python字典
- ¥15 multisim电路设计(相关搜索:设计报告)
- ¥15 从github上下载的项目到ecplise上咋运行
- ¥15 PC-lint Plus
- ¥15 gpl24676注释
- ¥15 php5.3内存泄露
- ¥15 DigSilent如何复制复合模型到自己案例?
- ¥15 求日版华为b610s-77a 官方公版固件,有偿
- ¥15 关于#java#的问题,请各位专家解答!(相关搜索:java程序)
- ¥15 linux tsi721的驱动编译后 insmod 提示 报错