Below is my crazy program.What i want it to do is that it should take two arrays from the user;the 1st array should be the memo & the 2nd should be answers.These two arrays should be passed to function compare of the type bool.In compare the 2 arrays should be compared and the results be stored in another array using bool.This means that the new array in function compare should consist of zeros and ones:zero-wrong & one-correct.How do i copy the results int the ResultArray?

#include<iostream>

using namespace std;

bool Compare(int[],int[],int);


int main()
{
	const int arraySize = 5;
	int CorrectArray[arraySize];
	int PupilArray[arraySize];

	
	cout<<"Enter the memorandum : ";

	for(int i = 0;i<arraySize; i++)
	{
		cin>>CorrectArray[i];

	}
	
	cout<<endl;

	cout<<"Pupil's answers : ";

	for(int j = 0; j<arraySize; j++)
	{
		cin>>PupilArray[j];
	}

	cout<<Compare(CorrectArray,PupilArray,arraySize);

	return 0;

}

bool Compare(int correct[],int pupil[],int size)
{
	
	bool ResultArray[5] = 0;
	for ( int i = 0; i < size; i++ ) {
		for(int j = 0; j<size;j++)
			if ( correct[i] != pupil[i] ){
      
	  i=false;
	ResultArray[j]=ResultArray[i];
			}

	else
	{
		i=true;

		ResultArray[i]=ResultArray[i];
	}
  }

  return ResultArray[];

}

1) You can not return arrays
2) Way you initiliase array was wrong
3) Pass all three arrays
4) You need only single for loop inside compare function.
5) Compare don't need to return anything. Address of array is passed so changes will be seen back.

You should something like this

#include<iostream>
using namespace std;

void Compare(int[],int[],bool [],int);

int main()
{
    const int arraySize = 5;
    int CorrectArray[arraySize];
    int PupilArray[arraySize];
    bool ResultArray[arraySize] = {false};
    
    cout<<"Enter the memorandum : ";

    for(int i = 0;i<arraySize; i++)
    {
        cin>>CorrectArray[i];
    }
    
    cout<<endl;
    cout<<"Pupil's answers : ";

    for(int j = 0; j<arraySize; j++)
    {
        cin>>PupilArray[j];
    }

    Compare(CorrectArray,PupilArray, ResultArray, arraySize);
    
    for(int j = 0; j<arraySize; j++)
    {
        cout<<ResultArray[j];
    }
    return 0;
}


void Compare(int correct[],int pupil[],bool Result[],int size)
{
    
    for ( int i = 0; i < size; i++ )
        if ( correct[i]== pupil[i] ){
                Result[i]=true;
            }
  
}
#include<iostream>
using namespace std;

void Compare(int[],int[],bool [],int);
void acceptInput (int [], int []);
void displayResult (bool []);

int main()
{
    const int arraySize = 5;
    int CorrectArray[arraySize];
    int PupilArray[arraySize];
    bool ResultArray[arraySize] = {false};
    acceptInput (CorrectArray, PupilArray);
    Compare(CorrectArray,PupilArray, ResultArray, arraySize);
    displayResult (ResultArray);
    return 0;
}

void Compare(int correct[],int pupil[],bool Result[],int size)
{
    
    for ( int i = 0; i < size; i++ )
        if ( correct[i]== pupil[i] ){
                Result[i]=true;
            }
  
}

void acceptInput (int CorrectArray[], int PupilArray[])
{
    cout<<"Enter the memorandum : ";
    for(int i = 0;i<arraySize; i++)
    {
        cin>>CorrectArray[i];
    }
    cout<<endl;
    cout<<"Pupil's answers : ";
    for(int j = 0; j<arraySize; j++)
    {
        cin>>PupilArray[j];
    }
}

void displayResult (bool ResultArray[])
{ 
  for (int i = 0; i < arraySize; ++i)
  {
     if (ResultArray [i] == true)
     { 
        cout <<"\nThe answer " << i + 1 << "is correct.";
     }
     else
     {
        cout <<"\nThe answer " << i + 1 << "is incorrect.";
     }
  }
}

Or in a more fuction oriented way.

Hi all,
There is a function in string.h library called

strcmp(str1, str2);

which can be used to compare two strings against each other.
It returns 0 if two strings are equal and return non-zero if they're different.

Good luck.

This article has been dead for over six months. Start a new discussion instead.