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