#include #include double diakrinousa(double x,double y,double z) /* Υπολογισμός διακρίνουσας */ { return(y*y-4*x*z); } main() { /* Δήλωση μεταβλητών */ double a,b,c,x1,x2,diakri,realpart,imagpart; int exisoseis,i; printf("Πρόγραμμα επίλυσης εξισώσεων δευτέρου βαθμού \n\n"); printf("Πλήθος εξισώσεων που θέλετε να επιλυθούν: "); scanf("%d",&exisoseis); if (exisoseis>0) // Έλεγχος τιμής εισόδου printf("Θα επιλυθούν %d εξισώσεις \n", exisoseis); else if (exisoseis==0) printf("\n Λάθος τιμή (μηδέν). Ξαναδοκιμάστε ! \n"); else printf(" Λάθος αριθμητική τιμή εισόδου. Ξαναδοκιμάστε ! \n"); for(i=1;i<=exisoseis;i++) // Επανάληψη της επίλυσης { printf("\n Για την εξίσωση %d δώστε τους συντε-λεστές \n", i); printf("Δώστε την τιμή του συντελεστή a: "); scanf("%lf",&a); printf("Δώστε την τιμή του συντελεστή b: "); scanf("%lf",&b); printf("Δώστε την τιμή του συντελεστή c: "); scanf("%lf",&c); diakri=diakrinousa(a,b,c); // Υπολογισμός της διακρίνουσας if (diakri>0) // Δύο λύσεις { x1=(-b+sqrt(diakri))/(2*a); x2=(-b-sqrt(diakri))/(2*a); printf("Η εξίσωση %d έχει 2 πραγματικές ρί-ζες:\n x1=%10.5f\n x2=%10.5f\n\n",i,x1,x2); } else if (diakri==0) // Μια λύση { x1=(-b)/(2*a); printf("Η εξίσωση %d έχει μια πραγματική (διπ-λή) ρίζα:\n x1=%10.5f\n\n",i,x1); } else // Μιγαδικές λύσεις { realpart=-b/(2*a); imagpart=sqrt(-diakri)/(2*a); printf("Η εξίσωση %d έχει 2 μιγαδικές ρί-ζες:\n x1=%10.5f+%10.5f i \n x2=%10.5f-%10.5f i \n",i,realpart,imagpart,realpart,imagpart); } } }