#include <stdio.h>
#include <stdlib.h>
#include <math.h>

//DISCRIMINANT functie -- Berekent de discriminant
int discriminant(int a, int b, int c)
{   
    int discriminant;

    discriminant = b*b - 4*a*c;
    printf ("D = b*b - 4ac = %d * %d - 4 * %d * %d = %d\n", b, b, a, c, discriminant);
    return discriminant;

}

//ABC functie -- Berekent de nulpunten
void abc(int a, int b, int c)
{   

    printf ("DISCRIMINANT BEREKENEN\n");
    printf ("---------------------------------------------------\n\n");

    int disc, vierkantswortel, X, Y;

    disc = discriminant(a, b, c);

    printf ("De discriminant is %d\n\n", disc);

    if (disc > 0)
    {
        printf ("\n\n\n\n");
        printf ("Discriminant is groter dan 0\n\n");
        vierkantswortel = sqrt((float) disc);

        X = (-b + vierkantswortel) / 2*a;
        Y = (-b - vierkantswortel) / 2*a;

        printf ("\n\n\n\n");
        printf ("NULPUNTEN BEREKENEN\n");
        printf ("---------------------------------------------------\n\n");
       
        printf ("We berekenen de nulpunten x en y:\n\n");
        printf ("X = (-b + sqrt(discriminant)) / 2*a = (%d + sqrt(%d)) / 2*%d = %d\n", -b, disc, a, X);
        printf ("Y = (-b - sqrt(discriminant)) / 2*a = (%d - sqrt(%d)) / 2*%d = %d\n\n", -b, disc, a, Y);

        printf ("De twee nulpunten zijn %d en %d\n\n", X, Y);
       

    }
   
    if (disc < 0) {

        printf ("Discriminant is kleiner dan 0\n\n");
        printf ("\n\n\n\n");
        printf ("NULPUNTEN BEREKENEN\n");
        printf ("---------------------------------------------------\n\n");
        printf ("Er zijn geen nulpunten\n\n");

    }

    if (disc == 0) {

        X = -b / 2*a;

        printf ("Discriminant is gelijk aan 0\n\n");
        printf ("\n\n\n\n");
        printf ("NULPUNTEN BEREKENEN\n");
        printf ("---------------------------------------------------\n\n");

        printf ("Nulpunt1 is gelijk aan Nulpunt2\n\n");
        printf ("X = Y = -b/2a = %d/2*%d = %d\n\n", -b, a, X);

    }

}

//Main -- Waarden a, b en C worden ingegeven en nulpunten worden berekend.
void main(void)
{
   
    int a, b, c;
    printf ("WAARDEN A, B en C INGEVEN\n");
    printf ("---------------------------------------------------\n\n");

    printf ("Geef de waarde in van a: ");
    scanf("%d",&a);

    printf ("Geef de waarde in van b: ");
    scanf("%d",&b);

    printf ("Geef de waarde in van c: ");
    scanf("%d",&c);
    printf ("\n\n\n\n");

    abc (a, b, c); //waarden a, b en c

}