
May 8th, 2008, 02:29 AM
|
|
Registered User
|
|
Join Date: May 2008
Posts: 1
Time spent in forums: 32 m 28 sec
Reputation Power: 0
|
|
|
General - Help with basic Array Comparison
What is Needed: Design a Program that compares two int arrays of equal size [5] and output whether they contain exactly the same values or not.
The function that I am having trouble with is called bool sameValues(int a[], int b[], int size), where size in this case is 5, this function compares the two arrays and decides whether they match exactly or not.
My Problem: In my compare function I am using a nested for loop, the problem is that once I have found a match, I want to blacklist that member of arrayB so that it doesn't get compared again (which would happen if there is more than one occurrence of the same integer in the array b[].
Any advice is greatly appreciated
Code:
bool sameValues(int a[], int b[], int size)
{
// define the body
int match = 0;
// counts successful matches between arrays
for(int thisMemberA = 0; thisMemberA < size; thisMemberA ++)
//Loops through array a[]
{
for(int thisMemberB = 0; thisMemberB < size; thisMemberB ++)
//Compare this member of a[] to each member of b[]
{
cout << "This A = " << a[thisMemberA] << " " << "(" << thisMemberA << ") ";
cout << "This B = " << b[thisMemberB] << " " << "(" << thisMemberB << ") ";
//Debug; Find out which elements of each array are being compared.
if(a[thisMemberA] == b[thisMemberB])
//if there is an equality
{
cout << "Found match on " << a[thisMemberA] << " with " << b[thisMemberB] << endl;
//Debug: cout this match
b[thisMemberB] = -1; //<----- I NEED TO DO SOMETHING HERE TO MAKE SURE THIS MEMBER OF B DOESNT GET USED AGAIN!
//Set thisMemberB to what so it doesnt get used again??
match++;
//set counter of matches to +1
break;
//Break this loop and continue with next thisMemberA
}
else
cout << "Found NO match on " << a[thisMemberA] << " with " << b[thisMemberB] << endl;
//Debug: Used to check which values returned no match
}
}
if(match == 5)
// if there are 'n' or 'size' or in this case const 5 matches
return 1;
// sameValues evaluates to true
else
//otherwise:
return 0;
//sameValues evaluates to false.
}
|