[C] Programma equazione di secondo grado
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;
}
#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
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)..
Non ho capito bene cosa intendi scusami
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);
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;
}
#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;
}
Lo scanf si aspetta dei double mentre tu gli stai fornendo dei float. Quindi rendi le variabili dei double oppure modifica lo scanf.