/* --------------------------------------------------------------------- // Figure 3.14: Input validation using while. // Compute the average speed of your car on a trip. // --------------------------------------------------------------------- // Test plan: begin end distance hr/min speed -------------------------------------------------- 61234 61475 241 4 51 49.69072 -1 -61521 61234 61521 287 5 28 52.5 23498 22222 -32222 32222 8724 148 43 58.6619 23498 32222 8724 -148 43 1 -70 148 -17 59.0590 */ #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: " ); scanf( "%lg%lg", &hours, &minutes ); hours = hours + ( minutes / 60 ); while ( hours < 0.0 ) { printf( " Please re-enter; time must be >= 0: " ); scanf( "%lg%lg", &hours, &minutes ); hours = hours + (minutes / 60); } miles = end_miles - begin_miles; speed = miles / hours; printf( " Average speed was %g \n", speed ); puts( " Normal termination.\n" ); }