Rule-Based Programming in C Listing 1 #include "stdoi.h" int av_speed; char like_scenery = 0, is_pilot = 0, fly = 0, drive = 0, fly_com = 0, fly_tcart = 0, fly_bon = 0, m_cycle = 0, car = 0; main() { int done, distance, /* in miles */ time: /* in hours */ char c; char str[10]; printf("This is a program to help with travel planning. \n"); printf("\n\n\nHow far are you going? (miles)\n"); gets(str); distances = atio(str); printf("\n\nHow much time do you have for the trip? (hours)\n:); gets(str); time = atio(str); av_speed = distance/time; printf("\n%d\n",av_speed); printf("Do you prefer scenery over speed? (Y/N)\n"); gets(str); if(str[0] = 'Y') like_scenery = 1; printf("Are you a pilot? (Y/N)\n"); gets(str); if(str[0] = 'Y') is_pilot = 1; rules(); if(fly_com) printf("\nFly commercial."); if(fly_tcart) printf("\nRent a Taylorcraft and fly low."); if(fly_bon) printf("\nRent a Bonanza and fly high."); if(m_cycle) printf("\nTake your motorcycle and ride the back roads."); if(car) printf("\nThere's nothing for it but to drive a car."); } rule(s) { if(av_speed > 60) fly = 1; if (av_speed) <= 60) drive = 1; if (fly && !is_pilot) fly_com = 1; if(fly && is_pilot && like_scenery && av_speed < 100 fly_tcart = 1; if(fly && is_pilot && (100 < av_speed) && (av_speed < 200)) fly_bon = 1; if(drive && like_scenery) m_cycle = 1; if(drive && !m_cycl) car = 1; }