我给你改了一下,你试试
#include<stdio.h>
#include<math.h>
int BinaryInput();
int isInputError(int binary);
int fun(int binary,int k);
int main(void)
{
int binary,decimal,k;
binary=BinaryInput();
k=isInputError(binary);
decimal=fun(binary,k);
printf("二进制数%d对应的十进制数是:%d\n",binary,decimal);
return 0;
}
int BinaryInput()//输入一个十进制数表示二进制数
{
int a;
printf("请输入一个二进制数,最前一个数为1:");
scanf("%d",&a);
return a;
}
int isInputError(int binary)//统计二进制数的位数
{
int i=0;
while (binary>0)
{
binary=binary/10;
i++;
}
return i;
}
int fun(int binary,int k)//将二进制数转换为十进制数
{
int i,j,sum=0;
for(i=0;i<k;i++)
{
j=binary%10;
binary=binary/10;
sum+=pow(2,i)*j;
}
return sum;
}