该程序假设将二进制数转换为十进制数。仅使用scanf()
和printf()
库函数。从用户接收char array
---没有提示输出小数形式,必须在转换结果必须在main中打印出来后,函数必须与参数(char binaryString[]
)一起使用。程序不起作用我不认为我在函数binaryToDecimal
中正确地将二进制形式转换为十进制形式,因为我无法使用pow()
我失去了
#include <stdio.h>
#include <math.h>
int binaryToDecimal(char binaryString[]) {
int c, j = 1, decimalNumber = 0;
for (binaryString[c = 0]; binaryString[c] > binaryString[33];
binaryString[++c]) {
while (binaryString[c] != 0) {
remainder = binaryString[c] % 10;
decimalNumber = decimalNumber + remainder * j;
j = j * 2;
binaryString[c] = binaryString[c] / 10;
}
}
return decimalNumber;
}
int binaryToDecimalMain() {
int arraysize = 33;
char binaryString[arraysize];
scanf("%32s", binaryString);
printf("%d",binaryToDecimal(binaryString []);
return 0;
}
答案 0 :(得分:0)
我没有给你算法,因为它似乎是你正在学习如何编程,你学会发现如何解决给你的问题是很重要的。但我可以给你一些提示:
while
内没有for
[这只适用于这种情况,有一些算法是做这样的事情所必需的])此外,您应该调用主要功能main
。