/* --------------------------------------------------------------------- // Figure 6.15: Input validation using for. // Also demonstrates input validation using while. // --------------------------------------------------------------------- // Compute the average speed of your car on a trip. */ #include void main( void ) { int begin_miles; /* Odometer reading at beginning of trip. */ int end_miles; /* Odometer reading at end of trip. */ int miles; /* Total miles travelled. */ double hours; /* Duration of trip (hours, minutes). */ double minutes; double speed; /* Average miles per hour for trip. */ puts( "\n Miles Per Hour Computation \n" ); printf( " Odometer reading at beginning of trip: " ); scanf( "%i", &begin_miles ); while (begin_miles < 0) { printf( " Please re-enter; odometer reading must be positive: " ); scanf( "%i", &begin_miles ); } printf( " Odometer reading at end of trip: " ); scanf( "%i", &end_miles ); while (end_miles < begin_miles) { printf( " Re-enter; input must be > first odometer reading: " ); scanf( "%i", &end_miles ); } printf( " Duration of trip in hours and minutes: " ); for(;;) { scanf( "%lg%lg", &hours, &minutes ); hours = hours + ( minutes / 60 ); if (hours >= 0.0) break; /* Leave loop if input is valid. */ printf( " Please re-enter; time must be >= 0: " ); } miles = end_miles - begin_miles; speed = miles / hours; printf( " Average speed was %g \n", speed ); puts( " Normal termination.\n" ); }