I'm new in C, so I try to create a program that calculate the area of triangle as a start.
Calculating the area is easy when the triangle exists, however the validation of straight line is working partially.
Example:
A(0,-4) B(1,0) C(4,12) does not produce straight line error.
but A(4,12) B(1,0) C(0,-4) produce straight line error.
#include <stdio.h>
#include <math.h>
double square(double num){
    return (num*num);
}
int main()
{
    double x[5],y[5],a,b,c,angle,area;
    printf("Hello there! Calculating the area of triangle.\n");
    printf("Enter a coordinate A :\n");
    scanf("%lf,%lf",&x[0],&y[0]);
    printf("Enter another coordinate B :\n");
    scanf("%lf,%lf",&x[1],&y[1]);
    printf("Enter another coordinate C :\n");
    scanf("%lf,%lf",&x[2],&y[2]);
    // AB as base (a) , c is opposite side 
    a = sqrt( square((x[0]-x[1])) + square((y[0]-y[1])) );
    b = sqrt( square((x[0]-x[2])) + square((y[0]-y[2])) );
    c = sqrt( square(x[1]-x[2]) + square((y[1]-y[2])) );
    double num = (square(a)+square(b)-square(c))/(2*a*b);
    angle = acos(num);
    area = .5*a*b*sin(angle);
   //printf("%lf %lf %lf %lf %lf \n",a,b,c,num,angle);
    if (num == 1 || num ==-1){
        printf("That's a straight line.");
    }else{
        printf("Area of triangle is %lf\n",area);
    }
    return 0;
}
 
     
    