Hola Indaganster, el problema es por que la evaluacion de la condicion se hace al inicio de cada bucle, y la entrada del valor que deberia detener la ejecucion es de las primeras instrucciones del bucle, pero posterior a la evaluacion de la condicion.
Creo que necesitas volver a ver el funcionamiento del while, por que es bastante claro que va a suceder lo que comentas.
La forma mas simple de solucionarlo es:
Código:
while(1) {
printf("\nTeclea los galones usados por este tanque: ");
scanf("%d",&GalTanque);
if(GalTanque==-1) {
if(!TotalGal) TotalGal++;
break;
}
TotalGal=TotalGal+GalTanque;
printf("\nTeclea los kilometros recorridos: ");
scanf("%d",&KmTanque);
TotalKm=TotalKm+KmTanque;
PromTanque=KmTanque/GalTanque;
printf("\nLos Km/Gal usados por este tanque son: %d",PromTanque);
}
if(!TotalGal) TotalGal++;
Es para evitar una division por cero.
Saludos
Marcadores