Не могу найти ошибку код на C++)
Условие:
Напишите функцию int quadratic_solve(double a, double b, double c, double *x1, double *x2), которая возвращает количество корней уравнения ax2 + bx + c = 0.
Если у уравнения один корень, то он должен возвращаться через параметр x1, а если два, то корни должны возвращаться через параметры x1 и x2 (в порядке возрастания).
С этой функции решите квадратное уравнение, с вводимыми в вашу программу коэффициентами a, b и c.
Формат входных данных:
С клавиатуры вводятся целые числа a, b и c, по модулю не превышающие 1000, и заданные с 3 знаками после десятичной точки. Гарантируется, что либо a ≠ 0, либо b ≠ 0.
Формат выходных данных:
Выведите корни квадратного уравнения с точностью до шести знаков после десятичной точки в возрастающем порядке.
Если корней у уравнения нет, то выводить ничего не нужно.
Моё решение:
https://pastebin.com/QrY9bPzh
Если в примере отсутствуют скобки и присутствуют операции - только сложение и вычитание, либо только умножение и деление - в этом случае все действия осуществляются по порядку слева на право.
Например, 5+8-5=8(выполняем все по порядку - к 5 прибавляем 8, а затем отнимаем 5)
Если в примере присутствуют смешанные операции - и сложение, и вычитание, и умножение, и деление, то в первую очередь выполняем операции умножение и деление, а затем только сложение или вычитание.
Например, 5+8*3=29 (сначала 8 умножаем на 3, а затем прибавляем 5)
Если в примере имеются скобки, то вначале выполняются действия в скобках.
Например, 3*(5+8)=39 (сначала 5+8, а затем умножаем на 3)
#include <stdlib.h>
int main()
{
int a,b,c,d1,d2,d=0,n=0;
srand (time(NULL));
a = rand() % 50 + 1;
b = rand() % 50 + 1;
c = rand() % 20 + 1;
while (c>a) a = rand() % 50 + 1;
while (c>b) b = rand() % 50 + 1;
printf ("%d %d %d\n", a, b, c);
d1 = a; d2 = b;
while (d1>=c){
d2 = b;
while (d2>=c){ n++; d2 -= c; }
d1 -= c;
}
printf("%d\n", n);
for (int i=0; i<(10-1); i++) d += n;
d = -d;
printf("%d", d);
return 0;
}
Пример:
27 42 4
60
-540