Program ma za zadanie wyznaczyć pierwiastki równania kwadratowego po wpisaniu do niego wartości wejściowych po czym ma je wypisać i tak w kółko aż do skończenia się wartości wejściowych
Przykładowe wartości wejściowe (jest ich więcej)
7 4 0 2.57 -28.7863 54.6668
7 4 0 0.219574 -0.972373 0.933615
7 4 0 3.95718 -42.9676 80.1966
3 pierwsze wartości można zignorować jest to tylko numer zadania (7 4 0). Po wrzuceniu kodu na stronę (STOS) dostaje informację o przekroczeniu limitu czasu.
Zastosowałem funkcję scanf /printf ponieważ przeczytałem że, jest to szybsze od cin/cout.
Podejrzewam że, program nie chce się zatrzymać?
#include <math.h>
#include <stdio.h>
using namespace std;
float a,b,c,d,x,x1,x2; // Dane typu "float".
int cztery,zero,siedem;
int main ()
{
while(true)
{
scanf("%d",&cztery);
scanf("%d",&zero);
scanf("%d",&siedem);
scanf("%f",&a); // Przypisane podanej wartoœci do zmiennej "a".
scanf("%f",&b);
scanf("%f",&c);
d=(b*b)-(4*a*c); // Wyznaczenie wartoœci tzw.delty -- "b^2-4ac".
if(d>0) // Jeœli delta wiêksza od "0".
{
x1=(-b-sqrt(d))/(2*a); // Wyznaczenie miejsca zerowego x1.
x2=(-b+sqrt(d))/(2*a); // Wyznaczenie miejsca zerowego x2.
printf("%f",floor(x2));
printf(" ");
printf("%f",floor(x1));
// Wypisanie wyniku na konsoli.
}
if(d==0) // Jeœli delta równa"0".
{
x=-b/(2*a); // Okreœlenie miejsca zerowego.
printf("%f",floor(x));
}
}
}