Ciao a tutti,
vorrei una mano con un esercizio che mi richiede un programma che dovrebbe prendere in input i lt e i km di ogni viaggio e calcolare una media per viaggio e una media complessiva. Se lo eseguo dichiarando tutte variabili di tipo int il programma funziona, ma se introduco quelle di tipo float (come richiesto nell'es.) mi cicla all'infinito.
(Dev C++ su windows)

codice:
#include <stdio.h>

int main()
{
    int km, totKm;
    
    float lt, totLt, media, mediaCompl;
    
    lt = 0;
    totKm = 0;
    totLt = 0;
    
    printf ("Enter lt used (-1 to end): ");
    scanf ("%f", &lt);
    
    while (lt != -1){
          printf ("Enter km driven: ");
          scanf ("%d", &km);
          totLt += lt;
          totKm += km;
          media = (float) km / lt;
          printf ("The km/lt for this tank was %d\n\n", media);
    
          printf ("Enter lt used (-1 to end): ");
          scanf ("%f", &lt);
          }
          
          mediaCompl = (float) totKm / totLt;
          printf ("The overall average km/lt was %d\n", mediaCompl);    
          
    system ("PAUSE");
    return 0;
}

Aiutatemi per favore
p.s. Spero di essermi espresso in modo corretto, sono alle prime armi.