Determinare il tipo di triangolo in C

In questo esercizio svilupperemo una programma che ci permette di verificare se i valori dati in input definiscono un triangolo e in particolare se si tratta di un triangolo isoscele, scaleno o equilatero.

Per verificare che i valori in input definiscono effettivamente un triangolo, dobbiamo applicare una delle proprietà fondamentali dei triangoli, la disuguaglianza triangolare. Questa proprietà afferma che in un triangolo la somma di due lati è maggiore della lunghezza del terzo lato, quindi dati tre punti A, B, C deve essere che AB < BC + AC e allo stesso tempo AC < AB + BC e BC < AB + AC. Verificata tale condizione dobbiamo determinare il tipo di triangolo.

Basandosi sui lati i triangoli si possono classificare in triangoli equilateri, isosceli e scaleni. Iniziamo verificando se si tratta di un triangolo equilatero guardando se i tre lati hanno la stessa lunghezza. Se così non fosse, controlliamo se almeno due lati del triangolo possiedono la stessa lunghezza, determinando così un triangolo isoscele. Se anche questo non è il caso, allora siamo certi che si tratta di un triangolo scaleno.

  
#include <stdio.h>

int main(){
    float a, b, c;
    
    printf("Inserisci i lati del triangolo: \n");
    scanf("%f %f %f", &a, &b, &c);
    
    while(!((a < b+c) && (b < a+c) && (c < a+b))){
        printf("I valori che hai inserito non definiscono un triangolo!\n");
        printf("Inserisci i lati del triangolo: \n");
        scanf("%f %f %f", &a, &b, &c);
    }
    
    printf("Il triangolo che hai inserito è: ");
    
    if(a == b && b == c){
        printf("equilatero!");
    }else if(a == b || b == c || c == a){
        printf("isoscele!");
    }else{
        printf("scaleno!");
    }
    return 0;
}

Indice pagine linguaggio C: