Volevo spiegarti una cose riguardo i tipi di variabile.
Tu come sai già all'inizio di una funzione main devi sempre inizializzare le variabili giusto?
Tu imposti il tipo int a tutte le variabili scrivi tutte le tue istruzioni che devi scrivere e adesso arriva il bello...
Quando stai scrivendo una istruzione di assegnamento: una espressione da eseguire (un calcolo in generale) puoi utilizzando l'operatore di conversione puoi "promuovere", covertire le variabili int nel tipo di dato da te specificato.
Ti faccio un 'esempio:
Non ti scrivo tutto il programma, ma solo il calcolo, le variabili sono a, b, c sono intere:
c = a / b; In questo caso il quoziente sarà un intero se a è un multiplo di b altrimenti la parte decimale o frazionaria del quoziente adrà persa.
Adesso ti riscrivo l'istruzione implementado l'operatore di conversione:
c = ( float )a / b; In questo caso ho scelto come tipo di dato float, ma puoi scegliere quello che vuoi. L'operatore di conversione è ( float ) e adesso ti spiego il suo funzionamento: Il compilatore quando incontra questo operatore converte le variabili intere in variabili decimali. Visto che l'operatore di conversione è un operatore unario al contrario dei 4 segni delle 4 operazioni che sono, invece, binari opera da destra verso sinistra equindi la conversione sarà effettuata su a, e questo tipo di operazione se ti interessa la teoria si chiama conversione o promozione esplicita. Adesso manca la conversione della variabile b, e qua il compilatore, il mio migliore amico convertirà la variabile b da intera a decimale e questo tipo di operazione si definisce conversione implicita.
Ultima cosa altrimenti ti rompo... quando devi stampare a testo con l'istruzione printf una variabile decimale puoi decidere il "tasso" di precisione, cioè quante cifre dopo la virgola visualizzare... in questo modo: %f.5 visualizzerà in questo caso 5 cifre dopo la virgola. Ricorda che la "precisione" di default è di 6 cifre.
Spero di esserti stato di aiuto!!!!
Scusa ancora per la mega spiegazione.
Ciao