// This illustrates side-effects and conflicting dependencies due to // the use of file-scoped state information: static int upperLimit; static int lowerLimit; void setBounds(int lower, int upper) { upperLimit = upper; lowerLimit = lower; } int countBetween(int List[], int Size) { int numBetween = 0; for (int i = 0; i < Size; i++) { if ( lowerLimit <= List[i] && List[i] <= upperLimit ) ++numBetween; } return numBetween; } int findMax(int List[], int Size) { upperLimit = List[0]; // uses external variable instead // adding a local for (int i = 1; i < Size; i++) { if ( upperLimit < List[i] ) upperLimit = List[i]; } return upperLimit; }