新人请教2进制转10进制程序报错
新人请问2进制转10进制程序报错?
#include "stdio.h"
#include "math.h"
#include "string.h"
int BinaryToDecimal(int bin[])
{
int length;
int decimal;
int j,i;
for (length = sizeof(bin);length >= 0;length--)
{
for(i=0;i<=10;i++)
{
int z = length -1;
decimal += bin[length]*pow(2.0,z);
}
}
return decimal;
}
int main()
{
int dec;
int len;
int bin[10];
printf("input a binary string!\n");
for (int i=0;i<10;i++)
{
scanf("%d",&bin[i]);
}
dec = BinaryToDecimal(bin);
printf("The Decimal = %f\n",dec);
}
提示说变量没有被初始化??不懂,求解.
谢谢
------解决方案--------------------
#include "stdio.h"
#include "math.h"
#include "string.h"
int BinaryToDecimal(int bin[])
{
int length;
int decimal;
int j,i;
for (length = sizeof(bin);length >= 0;length--)
{
for(i=0;i<=10;i++)
{
int z = length -1;
decimal += bin[length]*pow(2.0,z);
}
}
return decimal;
}
int main()
{
int dec;
int len;
int bin[10];
printf("input a binary string!\n");
for (int i=0;i<10;i++)
{
scanf("%d",&bin[i]);
}
dec = BinaryToDecimal(bin);
printf("The Decimal = %f\n",dec);
}
提示说变量没有被初始化??不懂,求解.
谢谢
------解决方案--------------------
- C/C++ code
#include "stdio.h" #include "math.h" #include "string.h" int BinaryToDecimal(int (*bin)[32]) { int decimal = 0; for(int i = 0; i < 32; ++i) { decimal <<= 1; decimal += (*bin)[i] - '0'; } return decimal; } int main() { int dec = 0; //int len; int bin[32] = {0}; printf("input a binary string!\n"); for (int i=0;i<32;i++) { bin[i] = getchar(); } dec = BinaryToDecimal(&bin); printf("The Decimal = %f\n",dec); }