#include <stdio.h>
#include <stdlib.h>
struct drone_t{
char name[ 30 ] ;
float top_s;
float acceleration;
} ;
size_t drone_creation( struct drone_t var[ ] , size_t n) ;
void drone_calc( struct drone_t var[ ] , size_t n) ;
#define MAX_DRONE 10
enum { NONE, CREATE, CALCULATE, EXIT } ;
int main( void ) {
struct drone_t variables[ MAX_DRONE] ;
int n = 0 ;
int selection;
do {
selection = NONE;
"Welcome to the drone travel time calculator\n "
"1. Create Drone\n "
"2. Calculate Time\n "
"3. Exit\n "
) ;
switch ( selection) {
case CREATE:
n = drone_creation( variables, MAX_DRONE) ; break ;
case CALCULATE:
drone_calc( variables, n) ; break ;
case EXIT:
break ;
default :
}
} while ( selection != EXIT) ;
}
size_t drone_creation( struct drone_t var[ ] , size_t n) {
size_t i;
for ( i = 0 ; i < n; ++ i) {
printf ( "Please enter the name of the drone(Period(.) means end of input): " ) ; scanf ( "%29s" , var
[ i
] .
name ) ; if ( var[ i] .name [ 0 ] == '.' && var[ i] .name [ 1 ] == '\0 ' )
break ;
printf ( "Please enter the Top Speed of the drone: " ) ; scanf ( "%f" , & var
[ i
] .
top_s ) ; printf ( "Please enter the acceleration of the drone: " ) ; scanf ( "%f" , & var
[ i
] .
acceleration ) ; }
#if DEBUG
for ( size_t k = 0 ; k < i; ++ k) {
printf ( "DEBUG>name:%s, top speed:%.2f acceleration:%.2f\n " , var[ k] .name , var[ k] .top_s , var[ k] .acceleration ) ;
}
#endif
return i;
}
void drone_calc( struct drone_t var[ ] , size_t n) {
; //not yet
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnN0cnVjdCBkcm9uZV90ewoJY2hhciBuYW1lWzMwXTsKCWZsb2F0IHRvcF9zOwoJZmxvYXQgYWNjZWxlcmF0aW9uOwp9OwoKc2l6ZV90IGRyb25lX2NyZWF0aW9uKHN0cnVjdCBkcm9uZV90IHZhcltdLCBzaXplX3Qgbik7CnZvaWQgZHJvbmVfY2FsYyhzdHJ1Y3QgZHJvbmVfdCB2YXJbXSwgc2l6ZV90IG4pOwoKI2RlZmluZSBNQVhfRFJPTkUgMTAKZW51bSB7IE5PTkUsIENSRUFURSwgQ0FMQ1VMQVRFLCBFWElUIH07CgppbnQgbWFpbih2b2lkKXsKCXN0cnVjdCBkcm9uZV90IHZhcmlhYmxlc1tNQVhfRFJPTkVdOwoJaW50IG4gPSAwOwoJaW50IHNlbGVjdGlvbjsKCglkbyB7CgkJc2VsZWN0aW9uID0gTk9ORTsKCQlwcmludGYoCgkJCSJXZWxjb21lIHRvIHRoZSBkcm9uZSB0cmF2ZWwgdGltZSBjYWxjdWxhdG9yXG4iCgkJCSIxLiBDcmVhdGUgRHJvbmVcbiIKCQkJIjIuIENhbGN1bGF0ZSBUaW1lXG4iCgkJCSIzLiBFeGl0XG4iCgkJKTsKCQlzY2FuZigiJWQiLCAmc2VsZWN0aW9uKTsKCQlzd2l0Y2goc2VsZWN0aW9uKXsKCQljYXNlIENSRUFURToKCQkJbiA9IGRyb25lX2NyZWF0aW9uKHZhcmlhYmxlcywgTUFYX0RST05FKTticmVhazsKCQljYXNlIENBTENVTEFURToKCQkJZHJvbmVfY2FsYyh2YXJpYWJsZXMsIG4pO2JyZWFrOwoJCWNhc2UgRVhJVDoKCQkJcHV0cygiU2VlIHlhISIpOwoJCQlicmVhazsKCQlkZWZhdWx0OgoJCQlwdXRzKCJJbnZhbGlkIGlucHV0ISIpOwoJCQl3aGlsZShnZXRjaGFyKCkhPSdcbicpOwoJCX0KCX0gd2hpbGUoc2VsZWN0aW9uICE9IEVYSVQpOwp9CgpzaXplX3QgZHJvbmVfY3JlYXRpb24oc3RydWN0IGRyb25lX3QgdmFyW10sIHNpemVfdCBuKXsKCXNpemVfdCBpOwoJZm9yKGkgPSAwOyBpIDwgbjsgKytpKXsKCQlwcmludGYoIlBsZWFzZSBlbnRlciB0aGUgbmFtZSBvZiB0aGUgZHJvbmUoUGVyaW9kKC4pIG1lYW5zIGVuZCBvZiBpbnB1dCk6ICIpOwoJCXNjYW5mKCIlMjlzIiwgdmFyW2ldLm5hbWUpOwoJCWlmKHZhcltpXS5uYW1lWzBdID09ICcuJyAmJiB2YXJbaV0ubmFtZVsxXSA9PSAnXDAnKQoJCQlicmVhazsKCQlwcmludGYoIlBsZWFzZSBlbnRlciB0aGUgVG9wIFNwZWVkIG9mIHRoZSBkcm9uZTogIik7CgkJc2NhbmYoIiVmIiwgJnZhcltpXS50b3Bfcyk7CgkJcHJpbnRmKCJQbGVhc2UgZW50ZXIgdGhlIGFjY2VsZXJhdGlvbiBvZiB0aGUgZHJvbmU6ICIpOwoJCXNjYW5mKCIlZiIsICZ2YXJbaV0uYWNjZWxlcmF0aW9uKTsKCX0KI2lmIERFQlVHCglmb3Ioc2l6ZV90IGsgPSAwOyBrIDwgaTsgKytrKXsKCQlwcmludGYoIkRFQlVHPm5hbWU6JXMsIHRvcCBzcGVlZDolLjJmIGFjY2VsZXJhdGlvbjolLjJmXG4iLCAKCQkJdmFyW2tdLm5hbWUsIHZhcltrXS50b3BfcywgdmFyW2tdLmFjY2VsZXJhdGlvbik7Cgl9CiNlbmRpZgoJcmV0dXJuIGk7Cn0Kdm9pZCBkcm9uZV9jYWxjKHN0cnVjdCBkcm9uZV90IHZhcltdLCBzaXplX3Qgbil7Cgk7Ly9ub3QgeWV0Cn0K