Grazie mille a tutti e due per l'aiuto , ho corretto il programma , e adesso come risultato mi da 9.167, alla faccia del venditore ;P
+m2+ ho cambiato i confronti come da tuo suggerimento , l'unica pecca che quando inserisco il valore sentinella -1 mi stampa dato non corretto e termina il programma , il messaggio dato non corretto lo vorrei solo nel caso in cui inserisco 0 o 0.0, e non quando inserisco -1 per terminare il programma .
Come posso fare?
/*PROGRAMMA CHE CALCOLA MEDIA DEI KM PERCORSI CON I LITRI EFFETTUATI,ALL'INSERIMENTO DEL VALORE SENTINELLA CALCOLA LA MEDIA TOTALE*/
#include <stdio.h>
/*inizio del programma*/
int main(void){
int km,cont;/*dichiarazione delle variabili intere*/
float lt,lt2,media1,media2,tot;/*dichiarazione delle variabili a virgola mobile*/
lt=0.1;/*inizializzazione della variabile per il ciclo vhile*/
cont=0;/*inizializzazione della variabile contatore*/
/*inizio ciclo while,fintanto che non verrà inserito il valore sentinella continua a chiedere di inserire i dati*/
while(lt>-1){
printf("Inserisci i litri riforniti -1 per terminare: ");/*richiesta di inserimento del dato*/
scanf("%f",<);/*memorizzazione del dato nella variabile lt*/
if(lt>0.1){
printf("Inserisci i km percorsi: ");/*richiesta di inserimento dei km*/
scanf("%d",&km);/*memorizzazione del dato*/
media1=(float)km/lt;/*calcolo della media */
printf("Con %.2f lt riforniti, la tua auto percorrre mediamente %.03f km/1lt\n",lt,media1);/*stampa del risultato*/
media2=media2+km;/*assegnamento del totale dei km effettuati per la media globale*/
lt2=lt2+lt;/*assegnamento del totale dei lt effettuati per la media globale*/
cont++; /*incremento della variabile contatore*/
}
else if(lt<=0)/*se inserisci il numero 0 stampa dato non corretto*/
if(lt<=0.0)/*se inserisci il numero 0.0 stampa dato non corretto*/
printf("Dato non corretto\n");/*stampa messaggio di errore*/
}
/*fine del ciclo while*/
if(lt<=-1)/*se inserisci il valore sentinella il programma termina e stampa il messaggio */
if(cont>1)/*se sono stati inseriti più rifornimenti calcola la media globale dei consumi*/
{
tot=media2/lt2;/*calcolo della media globale dei consumi(somma dei km effettuati diviso la somma dei lt rifoniti)*/
printf("Con %d rifornimenti effettuati hai iserito un totale %.3f lt di carburante , la tua auto percorre mediamente %.3f km/1lt\n",cont,lt2,tot);/*stampa del risultato*/
}
printf("Programma terminato");/*stampa messaggio di fine programma*/
return 0;/*programma eseguito correttamente*/
}