ユーザーに文字列を使用して数値を入力するように求めるプログラムを作成しました。プログラムはその数値を 10 進数に変換しますが、(-lm を使用して) コンパイルして a.out を実行すると、問題が発生します。セグメンテーション違反 (コア ダンプ) が表示されます。どこを確認すればよいのか、どのように修正すればよいのかよくわかりません。
#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;