Программа решения квадратного уравнения - C (СИ)
Формулировка задачи:
Всем добрый день.
Столкнулся с таким вопросом, а точнее проблемой. Нашел в интернете код для решения квадратного уравнения. Решил узнать алгоритм работы такого кода. Но вот назрел такой вопрос: 1) Как сделать так, если я к примеру напишу в консоль заместо коэффициентов(a,b,c) какой нибудь текст , например "hello world" и т.д., и чтобы в консоли появилась после этого надпись, которая сообщит об ошибке и попросит сделать ввод повторно(снова).
2) И как добавить плюс ко всему этому коду, функцию которая будет вычислять комплексно-сопряженные корни.
Буду благодарен любому совету,любой помощи. Спасибо.
С уважением.
автор исходного кода:
www.webnoob.org
#include <stdio.h>
#include <math.h>
main()
{
float a,b,c;
printf("vvedite a, b, c: ");
scanf("%f %f %f", &a, &b, &c);
if(a == 0)
{
if(b == 0)
{
if(c == 0)
{
printf("x - lyboe 4islo");
}
else
{
printf("kornei net");
}
}
else
{
printf ("x = %g", -c/b);
}
}
else
{
float d, x1, x2;
d = b * b - 4 * a * c;
if(d < 0)
{
printf("kornei net");
}
else
{
if(d == 0)
{
printf("x= %g", -b/(2*a));
}
else
{
printf("x1= %g, x2= %g",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));
}
}
}
return 0;
}Решение задачи: «Программа решения квадратного уравнения»
textual
Листинг программы
if (d<0) {
Re = -b/(2*a);
Im = sqrt(-d)/(2*a);
printf("x1=%g + i%g\n", Re, Im);
printf("x2=%g - i%g\n", Re, Im);
}
Объяснение кода листинга программы
- В данном коде решается квадратное уравнение вида
ax^2 + bx + c = 0 - Переменные a, b и c содержат коэффициенты этого уравнения
- Переменная d содержит дискриминант уравнения, вычисленный по формуле
d = b^2 - 4ac - Если дискриминант отрицательный (d < 0), то уравнение не имеет вещественных корней
- В этом случае программа вычисляет комплексные корни уравнения с помощью формул
x1 = (-b + sqrt(d))/(2a)иx2 = (-b - sqrt(d))/(2a) - Значения корней сохраняются в переменных Re и Im соответственно
- С помощью функции printf() выводятся значения корней на экран
- Формат вывода соответствует
x1 = real + i imag, где real и imag - вещественная и мнимая части комплексного числа соответственно - Выводится значение первого корня (x1)
- Выводится значение второго корня (x2)