Non esci con il valore sentinella perché nel while la variabile che ti interessa (ossia gallone) va o inizializzata prima oppure chiedi di inserire prima del ciclo while la variabile stessa(riga 14,riga 27), ti ho riscritto il programma
ho solo scambiato la posizione dello scanf();
#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned int galloni;
unsigned int miglia;
unsigned int totale_galloni = 0;
unsigned int totale_miglia = 0;
int miglia_galloni;
int totale_miglia_totale_galloni;
printf("Inserisci i galloni\n");
scanf("%u", &galloni);
while(galloni != -1)
{
printf("Inserisci le miglia\n");
scanf("%u", &miglia);
miglia_galloni = miglia / galloni;
printf("Le miglia per gallone sono %d\n", miglia_galloni);
totale_miglia += miglia;
totale_galloni += galloni;
printf("Inserisci i galloni\n");
scanf("%u", &galloni);
}
totale_miglia_totale_galloni = totale_miglia / totale_galloni;
printf("Il totale delle miglia per gallone è %d\n", totale_miglia_totale_galloni);
return 0;
}
se vuoi valori in virgola mobile devi usare variabili float al posto delle unsigned int oppure int, prova a cambiare.