Si ora è chiaro. Mancava poco ahahNon sei lontano dalla soluzione, ti è sufficiente non richiedere l'input fuori dal while e inizializzare a 0 litres:
C:#include <stdio.h> // la funzione main inizia l'esecuzione del programma int main( void ) { // definisco le variabili int litres = 0, kms; float overallAverage, tank; unsigned int totalLitres = 0; unsigned int totalKms = 0; unsigned int counter = 0; while ( litres != -1 ) { printf( "%s", " Enter the litres used (-1 to end): " ); // chiedo inserimento litri scanf( "%d", &litres ); printf( "%s", " Enter the kms driven: " ); // chiedo inserimento kms scanf( "%d", &kms ); tank = ( float ) kms / litres; printf( "The kms/litres for this tank was: %f\n", tank ); // stampo la media per questo tank ++counter; totalLitres += litres; totalKms += kms; } // fine di while overallAverage = ( float ) totalKms / totalLitres; // definisco overall totale (kms/litri) printf( "The overall average was: %f\n", overallAverage ); // stampo overall totale } // fine di main
Dovresti inserire un if dopo la lettura di litres per uscire dal ciclo quando viene inserito -1. A quel punto la condizione del for puoi anche lasciarla awhile(true)
, creando un loop infinito (che viene interrotto dall'if che andrai ad inserire.
In alternativa, puoi racchiudere tutto in un if, quindi:
C:#include <stdio.h> // la funzione main inizia l'esecuzione del programma int main( void ) { // definisco le variabili int litres = 0, kms; float overallAverage, tank; unsigned int totalLitres = 0; unsigned int totalKms = 0; while ( litres != -1 ) { printf( "%s", " Enter the litres used (-1 to end): " ); // chiedo inserimento litri scanf( "%d", &litres ); if(litres != -1) { printf( "%s", " Enter the kms driven: " ); // chiedo inserimento kms scanf( "%d", &kms ); tank = ( float ) kms / litres; printf( "The kms/litres for this tank was: %f\n", tank ); // stampo la media per questo tank totalLitres += litres; totalKms += kms; } } // fine di while overallAverage = ( float ) totalKms / totalLitres; // definisco overall totale (kms/litri) printf( "The overall average was: %f\n", overallAverage ); // stampo overall totale } // fine di main
Ti ho rimosso anche counter, visto che non la utilizzavi.
Grazie ancora