该代码应将二进制数转换为十进制数,但事实并非如此。任何人都可以请检查我可能出错的地方。
#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{
char s[40];
int base;
int index,n,p,sum=0; /* n is the number of digits in the converted value */
printf("enter the number and base: ");
scanf("%s %d",s,&base);
for(n=strlen(s)-1;n>=0;n--)
{
p=strlen(s);
for(index=strlen(s)-(p-1); index<=p; index++)
{
sum += s[index] * pow(base,n);
}
}
printf("decimal no. is %d",sum);
printf("\n");
}
输出::
enter the number and base:1011
2
十进制数 是 1487