my professor has asked us to solve the following problem but im having trouble understanding it

**Write a function that takes in a 2 dimensional array of integers and returns the third largest
number. Let the number of columns of your 2 dimensional array be 5. Call this function from
the main program with 2 different arrays to show that it works.
**

Ive tried to make sense of it and create a code but i am not sure how to call the function in the main function. i tried to create a variable int a[], which gave me an error saying that that the first bracket can't be empty. He doesn't specify the number of rows, so should it be 1, by default?

I am trying to understand a function he used in class as example. This was a code to find the second maximum class which is

``````int SecondMax2D(int a[], int rows)
{
int max1;
int max2;

if (a>a)
{
max1= a;
max2=a;
}
else
{
max1=a;
max2=a;
}

for (int row=0; row<rows; row++)
{
for (int col=0; col<10; col++)
{
if(row = = 0 && (col == 0 || col ==1))
continue;
if (a[row][col]> max1)
{
max2=max1;
max1=a[row][col];
}
else if (a[row][col]>max2)
max2=a[row][col];
}

}

return max2;
}
``````

I am not quite sure what int rows is supposed to be. isnt a[] supposed to be the number of rows?

If wanted to call this function in the main function, how would i do it?

`````` int main()
{

SecondMax2d(__, ___,___)
// If he gives a question(similar to the one above) where he says it should have 10 columns, without specifying rows, i am not sure what's supposed to go in the first blank, and the last, which is supposed to be int rows.

system("pause");
return 0;

}
``````

Thanks for your help

## Recommended Answers

line 47 : at your function call your not using the array as your first parameter

## All 2 Replies

i've modified my code with the following, however im getting an error when i debug it, it freezes and says," Unhandled exception at 0x779415de in 2darray.exe: 0xC0000005: Access violation reading location 0x00000000."

``````#include <iostream>

using namespace std;

int SecondMax2D(int a, int rows)
{
int max1;
int max2;

if (a>a)
{
max1= a;
max2=a;
}
else
{
max1=a;
max2=a;
}

for (int row=0; row<rows; row++)
{
for (int col=0; col<10; col++)
{
if(row == 0 && (col == 0 || col ==1))
continue;
if (a[row][col]> max1)
{
max2=max1;
max1=a[row][col];
}
else if (a[row][col]>max2)
max2=a[row][col];
}

}

return max2;
}
int main()
{
int a={{34,2,33,45,12},{7,58,46,23,5}};

cout<< SecondMax2D(0, 2); ;

system("pause");
return 0;

}
``````

line 47 : at your function call your not using the array as your first parameter

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.21 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.