Witam Mam zadanie Napisac program, który z wykorzystaniem instrukcji wyboru switch obliczy pierwiastki równania
kwadratowego ax2+bx+c = 0, gdzie zmienne a, b, c to liczby rzeczywiste wprowadzane z klawiatury.
Program powinien zawierać trzy funkcje:
a) czytaj_dane() - odpowiedzialną za wczytanie danych do programu i obsłużenie sytuacji kiedy a = 0;
b) przetworz_dane() - odpowiedzialną za wykonanie niezbędnych obliczeń;
c) wyswietl_wynik() - odpowiedzialną za pokazanie rezultatów na ekranie komputera.
Wiem ze kod jest bardzo sredni ale dopiero sie uczę. Chciałbym wiedzieć dlaczego wynik nie przenosi mi się do funkcji wyswietl_wynik. Jeśli dam żeby wynik wyświetlił się w funkcji przetworz_dane to wszystko działa.
#include <cmath>
using namespace std;
float a,b,c,x1,x2,x0;
int delta;
int czytaj_dane()
{
cout<<"podaj a: ";
cin>>a;
cout<<"podaj b: ";
cin>>b;
cout<<"podaj c: ";
cin>>c;
}
int przetworz_dane(float a,float b, float c,float x1,float x2, float x0,int delta)
{
delta = b*b - 4*a*c;
switch(delta)
{
case 0:
x0 = -b/(2*a);
break;
default:
delta = sqrt(delta);
x1 = (-b - delta)/(2*a);
x2 = (-b + delta)/(2*a);
break;
}
}
int wyswietl_wynik()
{
cout<<x1<<x2<<x0;
}
int main()
{
czytaj_dane();
przetworz_dane(a,b,c,x1,x2,x0,delta);
wyswietl_wynik();
return 0;
}```