|
//Date: 2003.01.29 //Author: AOU //File: areDistinct2.cpp /////////////////////////////////////////////////////////// // include files /////////////////////////////////////////////////////////// #include <iostream.h> #include <stdlib.h> /////////////////////////////////////////////////////////// // prototypes /////////////////////////////////////////////////////////// bool areDistinct(int a[], int n); void populate(int a[], int &n); void display(int a[], int n); /////////////////////////////////////////////////////////// // constants /////////////////////////////////////////////////////////// const int MAX_COUNT = 10; //maximum size of array const int MAX_VALUE = 5; /////////////////////////////////////////////////////////// // main function /////////////////////////////////////////////////////////// void main(void) { int a[MAX_COUNT]; int n; for (int p=1; p <= 10; p++) { cout << "Case #" << p << endl; populate(a, n); display(a, n); if (areDistinct(a, n)) cout << "Array has distinct values\n"; else cout << "Array does not have distinct values\n"; cout << "--------------------------------------\n"; } } /////////////////////////////////////////////////////////// // bool areDistinct(int a[], int n) /////////////////////////////////////////////////////////// /* A function to check if all the values are unique/distinct Algorithm if n <= 1 then return true else do the following for i=1 to n-1 do the following for j=0 to i-1 if a[i] = a[j] then return false next j next i return true */ bool areDistinct(int a[], int n) { if (n <= 1) return true; else { int i, j; for (i=1; i<=n-1; i++) for (j=0; j<=i-1; j++) if (a[i] == a[j]) return false; return true; } } /////////////////////////////////////////////////////////// // void populate(int a[], int &n) /////////////////////////////////////////////////////////// //A function to fill an array (a) with random values /* Algorithm n = random number between 0 to MAX_COUNT do the following for i=0 to n-1 a[i] = random number between 0 to MAX_VALUE */ void populate(int a[], int &n) { n = rand()%(MAX_COUNT+1); for (int i=0; i<=n-1; i++) a[i] = rand()%(MAX_VALUE+1); } /////////////////////////////////////////////////////////// // void display(int a[], int n) /////////////////////////////////////////////////////////// void display(int a[], int n) { cout << "a[" << n << "]="; for (int i=0; i<=n-1; i++) cout << a[i] << ' '; cout << endl; } /////////////////////////////////////////////////////////// // SAMPLE OUTPUT /////////////////////////////////////////////////////////// /* Case #1 a[8]=5 4 4 5 4 0 0 4 Array does not have distinct values -------------------------------------- Case #2 a[0]= Array has distinct values -------------------------------------- Case #3 a[7]=5 1 3 1 5 1 2 Array does not have distinct values -------------------------------------- Case #4 a[9]=0 3 0 2 3 4 4 3 2 Array does not have distinct values -------------------------------------- Case #5 a[6]=5 5 0 5 0 3 Array does not have distinct values -------------------------------------- Case #6 a[2]=5 1 Array has distinct values -------------------------------------- Case #7 a[7]=0 5 3 2 3 3 2 Array does not have distinct values -------------------------------------- Case #8 a[5]=1 5 4 5 2 Array does not have distinct values -------------------------------------- Case #9 a[3]=3 3 1 Array does not have distinct values -------------------------------------- Case #10 a[0]= Array has distinct values -------------------------------------- Press any key to continue */ |