Problem 3 Quadratic Equation
Здравейте,
Искам да попитам за съвет относно третата задача от домашното в която става въпрос за квадратното уравнение. Проблема ми е, че не знам как да вкарам дробите в кода и да накарам програмата да пресмята тези дроби. Останалата част от кода е готова, написана и тествана, ако се наложи, мога да приложа код, ще съм благодарен, ако някой ми помогне да се справя с този проблем.
Благодаря!
Благодаря ти, справих се със задачата, взех си 100/100 в Judje, грешката ми е била в неправилно поставени скоби на х1 и х2 и от там идва и цялата грешка с пресмятането на дробите и грешните резултати.
Здравейте, колеги! Тъй като въпросът ми е по същата задача, реших да пиша тук, вместо да правя друга тема. Аз си направих задачата до 80 / 100 (Тест 1 не минава), но не мога да разбера какво ми липсва за максимум точки в Judge. Пробвах да форматирам изхода с различен пресижън и не се получава. Когато тествам с Code Blocks, програмата си работи. Кодът ми е: https://pastebin.com/BrFbUGac. Някой има ли идея от какво може да е?
m.nikolov97 проверката в която имаш само един корен ти е грешна
Здравей, Дани! Благодаря ти за отделеното време! Днес ми прие задачата със 100/100 след като промених сметката, когато имаме 1 корен (при Д = 0) от (-b / 2 * a) на (-b) / (2*a). Изглежда и аз съм имал някакъв проблем със скобите.
@m.nikolov97 Кода ти работи, деленето обаче е с по голям приоритет при операцийте. Оправи само скобите при проверката където имаме само 1 корен и ще тръгне... на 20ти ред.
от cout << (-b / 2 * a);
на cout << (-b / (2 * a));
Делението е със същия приоритет като умножението (и модулното деление), обаче редът на изпълнение на операциите е от ляво на дясно https://en.cppreference.com/w/cpp/language/operator_precedence Затова израза -b / 2 * a се изпълнява като ((-b) / 2) * a Понеже a е в знаменателя, трябва да сложим (2 * a) в скоби или да разделим на a, ето така -b / 2 / a
Така че делението не е с по-голям приоритет от умножението, но в дадения случай се изпълнява преди умножението.