#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main (void)
{
float a,b,c;
float y,delta;
float soluzione1, soluzione2, soluzione3;
FILE*apertura; //dichiarazione della variabile apertura// //contiene l'indirizzo di una variabile di tipo FILE//
FILE*chiusura;
apertura=fopen("eqdati.txt","r"); /*riga che definisce il significato della variabile-puntatore apertura attraverso funzione fopen*/
if(apertura=NULL)
{
printf("operazione non riuscita");
}
else
{
fscanf(apertura,"%f %f %f",&a,&b,&c);
printf("%f %f %f",a,b,c);
}
chiusura=fopen("risulatoeq.txt","w");
if(chiusura==NULL)
{
printf("operazione non riuscita");
}
delta=((b*b)-(4*a*c));
if(delta>0)
{
y=sqrt(delta);
printf("\n l'equazione ammette due soluzioni reali e distinte :");
soluzione1=((-b + y)/(2*a));
soluzione2=((-b - y)/(2*a));
printf("\n soluzione 1 : %.f",soluzione1);
printf("\n soluzione 2 : %.f",soluzione2);
fprintf(chiusura,"%f",soluzione1);
fprintf(chiusura,"%f",soluzione2);
}
else if(delta==0)
{
soluzione3= (-b) / (2 * a);
printf("l'equazione ammette due soluzioni reali e coincidenti :");
printf("\n Soluzione: %.f", soluzione3);
fprintf(chiusura,"%f",soluzione3);
}
else
{
printf("le soluzioni non esistono");
fprintf(chiusura,"le soluzioni non esistono");
}
fclose(chiusura);
fclose(apertura);
printf ("\n\n");
system ("PAUSE");
}
Buongiorno, ho un problema con questo esercizio che mi è stato assegnato per le vacanze estive. Bisogna creare un programma in c che risolva un'equazione di secondo grado e acquisisca i coefficienti a,b,c da file e stampi le soluzioni su file.
Non riesco a capire perché fscanf non riesca ad acquisire i valori, infatti quando mando in esecuzione il programma, mi stampa a video sempre zero e poi mi da come soluzione -0. Grazie per l'aiuto