我编写了一个程序,要求用户使用字符串输入一个数字,然后程序将该数字转换为十进制,但是当我编译(使用 -lm)并运行 a.out 时,我遇到了问题,我得到一个分段错误(核心转储),不确定在哪里查看或如何修复它,还有一个问题我需要什么才能打印转换结果(printf(“something..”))?
#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
char string[100];
int s;
char a;
char j;
int sum;
printf("B = B to D\n");
printf("D = D to B\n");
printf("choose which one to convert to:");
scanf("%c%c", &a, &j);
if (a == 'B')
{
printf("enter binary number to convert to decimal: ");
scanf("%s", string);
for(s = strlen-1; s >= 0; s--)
{
if(string[s] == '1')
{
sum = sum + pow(2,s);
}
}
}
return 0;