/* arrays.cpp * * Array manipulation program. * * Bruce M. Bolden * November 7, 1997 * * http://www.cs.uidaho.edu/~bruceb/ * --------------------------------------------------------- */ #include #include #include #include // Prototypes int ReadArray( ifstream &fIn, int A[], const int nMax ); void WriteArray( ofstream &fOut, const int A[], const int nMax ); void InitializeArray( int A[], const int nMax, const int iVal ); int MinArray( const int A[], const int nMax ); int SearchArray( const int A[], const int nMax, const int keyVal ); int main() { const int MAX_ELEMENTS = 10; int iArray[MAX_ELEMENTS]; int n; // number of elements in the array int index; // Open Input/Output file streams (no error checking!) ifstream fIn( "array.dat", ios::in ); ofstream fOut( "array.out", ios::out ); n = ReadArray( fIn, iArray, MAX_ELEMENTS ); fIn.close(); fOut << "Initial array contents:" << endl; WriteArray( fOut, iArray, n ); fOut << "\n\nMinimum value" << endl; int min = MinArray( iArray, n ); fOut << "\tMinimum: " << min << endl; // Test array search function fOut << "\nSearching for 5" << endl; index = SearchArray( iArray, n, 5 ); fOut << "\tindex: " << index << endl; fOut << "\nSearching for 25" << endl; index = SearchArray( iArray, n, 25 ); fOut << "\tindex: " << index << endl; // Test array initialization function InitializeArray( iArray, MAX_ELEMENTS, 5 ); fOut << "Array contents (after initializing them to 5):" << endl; WriteArray( fOut, iArray, n ); fOut.close(); return 0; } // ------------------------------------------------------------------ /* ReadArray * * Reads array elements. */ int ReadArray( ifstream& fIn, int A[], const int nMax ) { int i = 0; int nTmp; while( (i < nMax) && (fIn >> nTmp) ) { A[i] = nTmp; ++i; } return i; // number of elements stored } /* WriteArray * * Writes one element to a line. */ void WriteArray( ofstream &fOut, const int A[], const int nMax ) { for( int i = 0 ; i < nMax ; i++ ) fOut << A[i] << endl; } /* InitializeArray * * Initializes array elements to a programmer defined value. */ void InitializeArray( int A[], const int nMax, const int iVal ) { for( int i = 0 ; i < nMax ; i++ ) A[i] = iVal; } /* MinArray * * Finds the minimum value in an array. */ int MinArray( const int A[], const int nMax ) { int min = A[0]; for( int i = 1 ; i < nMax ; i++ ) { if( A[i] < min ) min = A[i]; } return min; } // ------------------------------------------------------------------ /* SearchArray * * Searches for the value, keyVal, in an array. * If successful, the index is returned. * If unsuccessful, -1 is returned. */ int SearchArray( const int A[], const int nMax, const int keyVal ) { for( int i = 0 ; i < nMax ; i++ ) { if( A[i] == keyVal ) return i; } return -1; } // ------------------------------------------------------------------