[C] Programma equazione di secondo grado

martinuccia98
Ciao, sto creando un programma che calcoli i risultati di un equazione di secondo grado ma c'è qualcosa che non va perché non calcola correttamente i risultati. Ecco il mio codice:

#include
#include
int main () {

float a,b,c,delta,x,y;
delta=b*b-4*a*c;
x=(-b+sqrt(delta))/(2*a);
y=(-b-sqrt(delta))/(2*a);

printf ("iserisci i coefficienti di un'equazione di secondo grado\n");
scanf ("&lf\n",&a);
scanf ("%lf\n",&b);
scanf ("%lf\n", &c);

if (delta>= 0){
printf ("le soluzioni sono %lf e %lf\n", &x, &y);
}
else{
printf ("l'equazione non ha soluzioni reali\n");

}

return 0;
}

Risposte
apatriarca
Leggi i valori dopo averli utilizzati. Il codice che fa uso di a, b e c deve essere inserito dopo gli scanf o i valori saranno quelli iniziali (del tutto casuali)..

martinuccia98
Non ho capito bene cosa intendi scusami

apatriarca
Le seguenti righe di codice vanno spostate dopo gli scanf.
delta=b*b-4*a*c;
x=(-b+sqrt(delta))/(2*a);
y=(-b-sqrt(delta))/(2*a);

martinuccia98
Le ho messe ma non cambia la situazione

#include
#include
int main () {

float a,b,c,delta,x,y;

printf ("iserisci i coefficienti di un'equazione di secondo grado\n");
scanf ("&lf\n",&a);
scanf ("%lf\n",&b);
scanf ("%lf\n", &c);

delta=b*b-4*a*c;
x=(-b+sqrt(delta))/(2*a);
y=(-b-sqrt(delta))/(2*a);

if (delta>= 0){
printf ("le soluzioni sono %lf e %lf\n", &x, &y);

}
else{
printf ("l'equazione non ha soluzioni reali\n");

}

return 0;
}

vict85
Lo scanf si aspetta dei double mentre tu gli stai fornendo dei float. Quindi rendi le variabili dei double oppure modifica lo scanf.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.