Lab 10-11-2001

include <stdio.h>
#include <math.h>

#define TRUE	1
#define FALSE	0

double calcDiscriminant(double a, double b, double c);
void printComplexRoots(double a, double b, double discriminant);

int inputPositiveInteger(void);

int main(void) {
    int i;

    printf("%s", "Please enter and integer: ");
    i = inputPositiveInteger();
    if (i < 0) {
        printf("%s\n", "You entered bad stuff");
    }
    else {
        printf("You entered %d\n", i);
    }

    /*
    //imaginary number situation
    float a = 1;		// asl;jfl;ksd
    float b = 2;		// l;aksjdf;lkjsa 
    float c = 3;		// ;lasjdflkjas
    
    double discriminant = calcDiscriminant(a, b, c);

    if (discriminant < 0) {
        printComplexRoots(a, b, discriminant);
    }
    else {
        printf("hello");
    }

    */
}

int inputPositiveInteger(void) {

    int c;
    int value = 0;
    int multiplier = 10;
    int inputValid = FALSE;

    c = getchar();
    
    while (c >= '0' && c <= '9') {
        inputValid = TRUE;
        value = (value * multiplier) + (c - '0');
        c = getchar();
    }

    return (inputValid) ? value : -1;
}

void printComplexRoots(double a, double b, double discriminant) {
    double firstTerm;
    double secondTerm;

    firstTerm = -b / (2 * a);
    secondTerm = sqrt(-discriminant) / (2 * a);

    printf("%f + %fi", firstTerm, secondTerm);

}

double calcDiscriminant(double a, double b, double c) {

    return b * b - 4 * a * c;

}