// Running times calculator
# include <stdio.h>
# include <math.h>
int main ( )
{
float cTime;
float gTime;
float cDist;
float gDist;
float min;
float sec;
float cMin;
float cSec;
float p1000;
char response[ 1 ] ;
int blank;
printf ( "Welcome to the running times calculator.\n \n Enter your completed race distance in metres: \n " ) ; printf ( "Enter your completed race time. Type minutes, hit enter. Type seconds, hit enter\n " ) ; scanf ( "%f" "%f" , & cMin
, & cSec
) ;
cTime = cSec+ ( 60 * cMin) ;
p1000
= pow ( 1000 / cDist
, 1.1 ) * cTime
;
printf ( "Would you like to enter another race time to improve prediction accuracy? \n " ) ;
if ( response == "yes" )
{
printf ( "Enter your completed race distance in metres: \n " ) ; printf ( "Enter your completed race time. Type minutes, hit enter. Type seconds, hit enter\n " ) ; scanf ( "%f" "%f" , & cMin
, & cSec
) ;
cTime = cSec+ ( 60 * cMin) ;
p1000
= ( ( pow ( 1000 / cDist
, 1.1 ) * cTime
) + p1000
) / 2 ;
}
printf ( "What is your goal race distance in metres? \n " ) ;
gTime
= pow ( gDist
/ 1000 , 1.1 ) * p1000
; min = gTime/ 60 ;
sec = remainder( gTime, 60 ) ;
if ( sec < 0 )
{
sec = sec + 60 ;
min = min - 1 ;
}
printf ( "Your predicted time for a race of %.0f metres is %.0f minutes and %.0f seconds" , gDist
, min
, sec
) ;
return 0 ;
}
Ly8gUnVubmluZyB0aW1lcyBjYWxjdWxhdG9yCgojIGluY2x1ZGUgPHN0ZGlvLmg+CiMgaW5jbHVkZSA8bWF0aC5oPgoKaW50IG1haW4gKCkKewogICAgZmxvYXQgY1RpbWU7CiAgICBmbG9hdCBnVGltZTsKICAgIGZsb2F0IGNEaXN0OwogICAgZmxvYXQgZ0Rpc3Q7CgogICAgZmxvYXQgbWluOwogICAgZmxvYXQgc2VjOwoKICAgIGZsb2F0IGNNaW47CiAgICBmbG9hdCBjU2VjOwogICAgZmxvYXQgcDEwMDA7CgogICAgY2hhciByZXNwb25zZVsxXTsKCiAgICBpbnQgYmxhbms7CgogICAgcHJpbnRmICgiV2VsY29tZSB0byB0aGUgcnVubmluZyB0aW1lcyBjYWxjdWxhdG9yLlxuXG5FbnRlciB5b3VyIGNvbXBsZXRlZCByYWNlIGRpc3RhbmNlIGluIG1ldHJlczogXG4iKTsKICAgIHNjYW5mICgiJWYiLCAmY0Rpc3QpOwogICAgcHJpbnRmKCJFbnRlciB5b3VyIGNvbXBsZXRlZCByYWNlIHRpbWUuIFR5cGUgbWludXRlcywgaGl0IGVudGVyLiBUeXBlIHNlY29uZHMsIGhpdCBlbnRlclxuIik7CiAgICBzY2FuZiAoIiVmIiAiJWYiLCAmY01pbiwgJmNTZWMpOwoKICAgIGNUaW1lID0gY1NlYysoNjAqY01pbik7CiAgICBwMTAwMCA9IHBvdygxMDAwL2NEaXN0LDEuMSkqY1RpbWU7CgogICAgcHJpbnRmICgiV291bGQgeW91IGxpa2UgdG8gZW50ZXIgYW5vdGhlciByYWNlIHRpbWUgdG8gaW1wcm92ZSBwcmVkaWN0aW9uIGFjY3VyYWN5PyBcbiIpOwogICAgc2NhbmYgKCIlcyIsICZyZXNwb25zZSk7CgogICAgaWYocmVzcG9uc2UgPT0gInllcyIpCiAgICB7CiAgICAgICBwcmludGYgKCJFbnRlciB5b3VyIGNvbXBsZXRlZCByYWNlIGRpc3RhbmNlIGluIG1ldHJlczogXG4iKTsKICAgICAgIHNjYW5mICgiJWYiLCAmY0Rpc3QpOyAgICAgICAgICAKICAgICAgIHByaW50ZigiRW50ZXIgeW91ciBjb21wbGV0ZWQgcmFjZSB0aW1lLiBUeXBlIG1pbnV0ZXMsIGhpdCBlbnRlci4gVHlwZSBzZWNvbmRzLCBoaXQgZW50ZXJcbiIpOwogICAgICAgc2NhbmYgKCIlZiIgIiVmIiwgJmNNaW4sICZjU2VjKTsKCiAgICAgICBjVGltZSA9IGNTZWMrKDYwKmNNaW4pOwogICAgICBwMTAwMCA9ICgocG93KDEwMDAvY0Rpc3QsMS4xKSpjVGltZSkrcDEwMDApLzI7CgogICAgfQoKICAgIHByaW50ZiAoIldoYXQgaXMgeW91ciBnb2FsIHJhY2UgZGlzdGFuY2UgaW4gbWV0cmVzPyBcbiIpOwogICAgc2NhbmYgKCIlZiIsICZnRGlzdCk7CgogICAgZ1RpbWUgPSBwb3coZ0Rpc3QvMTAwMCwgMS4xKSpwMTAwMDsKICAgIG1pbiA9IGdUaW1lLzYwOwogICAgc2VjID0gcmVtYWluZGVyKGdUaW1lLDYwKTsKCiAgICBpZiAoc2VjIDwgMCkKICAgIHsKICAgIHNlYyA9IHNlYyArIDYwOwogICAgbWluID0gbWluIC0gMTsgICAgCiAgICB9CiAgICBwcmludGYgKCJZb3VyIHByZWRpY3RlZCB0aW1lIGZvciBhIHJhY2Ugb2YgJS4wZiBtZXRyZXMgaXMgJS4wZiBtaW51dGVzIGFuZCAlLjBmIHNlY29uZHMiLCBnRGlzdCwgbWluLCBzZWMpOwogICAgc2NhbmYoIiVmIiwgJmJsYW5rKTsKCiAgICByZXR1cm4gMDsKfQ==