Ошибка сегментирования - C (СИ) (78828)
Формулировка задачи:
Добрый вечер. Есть код на C:
Компилирую с флагом -lm, т.к. без него gcc не видит библиотеку math.h
Компиляция проходит без ошибок. При запуске он запрашивает первый коэффициент, я ввожу и получаю сообщение "Ошибка сегментирования".
Насколько я понял, он по какой-то причине не может записать полученное от пользователя значение в переменную. Подскажите, как решить эту проблему?
#include <stdio.h>
#include <math.h>
int main (void)
{
double a, b, c, d, x[2];
printf ("Введите коэффициент a: ");
scanf ("%f", a);
printf ("Введите коэффициент b: ");
scanf ("%f", b);
printf ("Введите коэффициент c: ");
scanf ("%f", c);
d = (b * b) - 4 * a * c;
if (d < 0)
{
printf ("Корни этого уравнения являются мнимыми.\n");
return 0;
}else if (d == 0){
printf ("Корень из этого уравнения равен 0.\n");
}
d = sqrt (d);
x[0] = (d - b) / 2;
x[1] = (-d - b) / 2;
printf ("Корни уравнения: %2.f & %2.f\n", x[0], x[1]);
return 0;
}Решение задачи: «Ошибка сегментирования»
textual
Листинг программы
scanf ("%lf", &a);
scanf ("%lf", &b);
scanf ("%lf", &c);
Объяснение кода листинга программы
- Вводится значение переменной
aс помощью функции scanf. - Вводится значение переменной
bс помощью функции scanf. - Вводится значение переменной
cс помощью функции scanf.