Ошибка сегментирования - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д