Calcolare l'area di un triangolo in C

Nel seguente esercizio scriveremo un programma in grado di calcolare l’area di un triangolo data la base e l’altezza.
Per poter calcolare l’area del triangolo abbiamo bisogno di ricevere i valori della base e dell’altezza, di conseguenza dichiariamo due variabili intere: base e altezza, e dichiariamo una variabile di tipo float denominata area.
A questo punto chiediamo all’utente di inserire i valori della base e dell’altezza tramite la funzione scanf.

Avendo ora i dati necessari possiamo calcolare l’area del triangolo, però dobbiamo stare attenti. La variabile area è di tipo float mentre base ed altezza sono di tipo int, quindi se facciamo (base*altezza)/2 il risultato sarà troncato, ovvero, con ad esempio base 7 e altezza 5 l’area dovrebbe essere pari a 17.5, ma per il programma sarà 17, questo perché stiamo facendo la divisione tra numeri interi e il valore viene calcolato con il casting implicito.
Per risolvere il problema abbiamo due possibilità: usiamo solo variabili di tipo float o ricorriamo al casting esplicito.

Per calcolare il valore con il casting esplicito basta aggiungere (float) prima di qualsiasi valore intero, così da trasformarlo in un numero con la virgola mobile.


  
area = (float) (base*altezza)/2;
area = ((float) base*altezza)/2;
area = (((float) base)*altezza)/2;
area = (base*((float) altezza))/2;
area = (base*altezza)/(float) 2;


Oppure basta dividere per 2.0, che alla fine è la stessa cosa di mettere (float) davanti a 2.

Dopodiché possiamo stampare a schermo il valore dell’area utilizzando lo specificatore di formato %.2f, così vengono stampati solamente due numeri dopo la virgola.


  
#include <stdio.h>

int main(){
    int base, altezza;
    float area;

	printf("Inserisci la base del triangolo: ");
	scanf("%d", &base);
    printf("Inserisci l'altezza del triangolo: ");
	scanf("%d", &altezza);

    area = (base*altezza)/2.0;

	printf("L'area del triangolo vale: %.2f", area);

	return 0;
}

Indice pagine linguaggio C: