Loading...
v.angelov92 avatar v.angelov92 8 Точки

Square root

Здравейте, писах програма, която решава квадратно уравнение, но на едно решение ми дава грешен отговор и Джъдж ми дава 60/100.

Това е кода:

#include <iostream>
#include<cmath>

using namespace std;

int main()
{
    double a, b, c, x1, x2;
    cin >> a >> b >> c;

    double discriminant = b * b - 4 * a * c;

    if(discriminant >= 0){
        x1 = (-b + sqrt(discriminant)) / (2 * a);
        x2 = (-b - sqrt(discriminant)) / (2 * a);
        cout << x1 << " " << x2 << endl;
    }   else{
        cout << "no roots" << endl;
    }

    return 0;
}

А това е заданието, на което се проваля:

a = 0.5; b = 5; c = 12.5.

Отговорът трябва да е само един(-5), но не мога да го изкарам.

Моля за помощ къде ми е грешката в алгоритъма?

Благодаря. :)

Тагове:
0
C++ Programming
Bobo_bobkata avatar Bobo_bobkata 48 Точки
Best Answer

Здравей проблема в кода е че като намираш дискриминантата и тя се получи точно нула  има друга формула която трябва да приложиш : -b / 2*а

Ето и кода:

#include <iostream>
#include<cmath>

using namespace std;

int main()
{
    double a, b, c, x1, x2;
    cin >> a >> b >> c;

    double discriminant = b * b - 4 * a * c;

    if(discriminant > 0){
        x1 = (-b + sqrt(discriminant)) / (2 * a);
        x2 = (-b - sqrt(discriminant)) / (2 * a);
        cout << x1 << " " << x2 << endl;
    } else if (discriminant == 0) {
        double x = (b * -1) / (2 * a);
        cout << x << endl;
    } else{
        cout << "no roots" << endl;
    }

    return 0;
}

0
v.angelov92 avatar v.angelov92 8 Точки

Благодаря за помощта. :)

0
kolioi avatar kolioi 641 Точки

Предполагам, че трябва да отпечаташ само корена, а програмата ти го отпечатва 2 пъти.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.