Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki, gal kas galėtų padėti pataisyti kodą? Atsakymą išmeta 0,000. Spėju, kad su duomenu tipais kažkas negerai, bet nežinau, kaip pataisyti.

Užduotis: Duoti kvadratinės lygties koeficientai a,b,c. Apskaičiuokite sprendinių sandaugą. Išveskite sandaugą palikdami tris skaitmenis po kablelio.

Mano sprendimas:

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
int a,b,c;
double d;
double san;
cin >>a>>b>>c;

d=pow(b,2)-(4*a*c); 
int x1=(-b+sqrt(d))/(2*a)*1.0;
int x2=(-b-sqrt(d))/(2*a)*1.0;
san=x1*x2;
cout<<fixed<<setprecision(3)<<san;

}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Neprisimenu matematikos klasiu jog padeciau su butent tuo aspektu, bet is programavimo puses:

  •  
    d=pow(b,2)-(4*a*c)
     Rezultatas gali buti negatyvus, pvz. b=1, a=1,c=1, tada `pow(b,2)-(4*a*c) patampa pow(1,2)-(4*1*1) = 1 - 4 = -3`. Veliau bandai vesti sakni is sio negatyvaus skaiciaus kas nera leidziama, todel tavo x1, x2 patampa -2147483648.
  • x1,x2 yra integers (sveikieji skaiciai be kablelio), ir tu juos gauti darai dalyba kas turi daug sansu tureti skaiciu po kablelio. As juos palikciau kaip double.
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...