Here is the revised program; any unrecognized industry code leads to immediate termination:
#include/* Define the trade apparatus */ struct trade {double price; int number;}; double trade_price (struct trade *x) {return x -> price * x -> number;} /* Define trade array */ struct trade *trade_pointers[100]; main ( ) { /* Declare various variables */ int limit, counter, industry, number; double price, sum = 0.0; /* Read trade information */ for (limit = 0; 3 == scanf ("%i%lf%i", &industry, &price, &number);) switch (industry) { case 1: case 5: trade_pointers[limit] = (struct trade*) malloc (sizeof (struct trade)); trade_pointers[limit] -> price = price; trade_pointers[limit] -> number = number; ++limit; break; case 0: case 2: case 3: case 4: break; default: printf ("Industry code %i is unknown!\n", industry); exit (0); } /* Compute cost */ for (counter = 0; counter < limit; ++counter) sum = sum + trade_price (trade_pointers[counter]); printf ("The total cost of %i selected trades is %f.\n", limit, sum); } --- Data --- 0 3.3 300 1 2.5 400 5 9.9 100 5 10.1 100 2 5.0 200 7 5.0 200 --- Result --- Industry code 7 is unknown!