Bom, tentei fazer mas não consigo sair com resultado de jeito nenhum. Provavelmente me embananei nos "if" e "else". Espero que possam me ajudar: 
/*Faça uma programa que leia 3 valores A, B e C e verifique se esses valores representam os lados de um triângulo. 
Para que seja um triângulo, todos os lados devem ser maiores que zero e nenhum lado deve ser igual ou maior que a soma dos outros dois lados. 
Se A, B e C representam os lados de um triângulo, então calcule e imprima sua área:
Área = (S*(S-a)*(S-b)*(S-c))/2 onde S = (a+b+c)/2
Informe também o tipo do triângulo:
Escaleno: todos os lados diferentes.
Isósceles: 2 lados iguais.
Eqüilátero: todos os lados iguais.*/
#include<stdio.h>
#include<conio.h>
int main()
{
    int A,B,C;
    float AREA,S;
    printf("\nInforme o primeiro lado do triangulo:");
    scanf("%d",&A);
    printf("\nInforme o segundo lado do triangulo:");
    scanf("%d",&B);
    printf("\nInforme o terceiro lado do triangulo:");
    scanf("%d",&C);
    S = ((A+B+C)/2);
    AREA = ((S*(S-A)*(S-B)*(S-C))/2);
    if (((A<=0)&&(B<=0)&&(C<=0)&&(A+B<=C)&&(B+C<=A)&&(A+C<=B)))
{
    printf("\nOs lados apresentados nao formam um triangulo");
    getch();
    return(0);
}
if(((A>0)&&(B>0)&&(C>0)))
{
    if (((A==B)&&(B==C)&&(C!=A)))
    {
    printf("\nA area do triangulo e %.2f",AREA);
    printf("\nO triangulo e isoceles");
}
else
    if (((A!=B)&&(B!=C)&&(C!=A)))
    {
    printf("\nA area do triangulo e %.2f",AREA);
    printf("\nO triangulo e escaleno");
}
    else 
    if (((A==B)&&(B==C)&&(C==A)));
    {
    printf("\nA area do triangulo e %.2f",AREA);
    printf("\nO triangulo e equilatero");
}
    getch();
    return(0);
}
}